Android⾃定义抛出异常的⽅法详解
前⾔
在android开发过程中,我们经常遇到异常的问题,崩溃抛出异常的时候,是⾮常令⼈烦闷的。但是异常有⼀个好处,使得app能在编译的时候给我们提供⼀些bug信息,有时可能⽐较模糊,有时可能很精准,甚⾄提⽰报错⾏。基于这⼀点,今天我们就来讲讲android中的异常吧。
今天要讲的内容:
throw 和 throws
异常类型
仿写异常及其好处
⼀. throw 和 throws
异常通常的处理⽅式有 throw/throws 以及 try-catch 两种。今天我们主要讲解throw/throws这⼀类的处理。
throw:抛出异常,⼀般是⼀个具体的异常。放置在⽅法体内,当代码执⾏此⾏并抛出⼀个具体的异常以
后,此异常下⾯的逻辑代码均不会执⾏。
throws:抛出异常的声明,⼀般放在⽅法头,表⽰此⽅法的执⾏可能会引起某个异常,或某⼏个异常,throws 后⾯可以声明多个异常,如:
public static void function1() throws Exception1, Exception2, Exception3{
}
⽽ throws引起的异常,⼀般由调⽤此⽅法的⽅法去处理。
⼆. 异常类型
java开发异常⼤致分为三种:
java.lang.Error
java.lang.Exception
java.lang.RuntimeException
这三个异常类都继承于他们的⽗类 Throwable,其中 Error 和 Exception是 Throwable 的两⼤⼦类。Error ⼀般是系统错误,我们不予讨论,⼀般我们程序出现bug都是属于Exception类,RuntimeException 是 Exception的⼀个⼦类。今天我要介绍的就是 RuntimeException 的⼏个常见⼦类。
2.1 java.lang.NullPointerException
空指针异常,⼀般是对象未创建或者不存在造成的。
2.2 ava.lang.ClassNotFoundException
类异常,⼀般是类不存在,排查的时候注意是不是类名称写错或者路径搞错了
2.3 java.lang.ArrayIndexOutOfBoundsException
下标越界异常,⼀般出现在数组或集合的操作过程中
2.4 java.lang.IllegalArgumentException
⽅法参数错误
2.5 java.lang.IllegalAccessException
没有访问权限,⼀般是类的权限访问出问题了
2.6 ArithmeticExecption
算术异常
2.7 ClassCastException
类型强转异常
2.8 NegativeArrayException
数组负下标异常nullpointerexception为什么异常
2.9 SecturityException
违背安全原则异常
2.10 EOFException
⽂件已结束异常
2.11 FileNotFoundException
⽂件未到异常
2.12 NumberFormatException
字符串转换为数字异常
2.13 SQLException
操作数据库异常
2.14 IOException
输⼊输出异常
2.15 NoSuchMethodException
⽅法未到异常
2.16 NoSuchFieldException
属性不存在异常
2.17 RuntimeException
运⾏时异常
2.18 TypeNotPresentException
类型不存在异常
当然,其实还有很多其他异常,这⾥就不⼀⼀列举了。
三. 仿写异常及其好处
看了怎么多的异常,那怎么仿写⼀个异常呢?下⾯给出⼀个例⼦:
public GestureHelper setPointCount(int pointCount){
if(pointCount<=0){
throw new SecurityException("====pointCount 请输⼊⼤于零的值=======");
}
return GestureHelper.this;
}
这是我代码中的⼀个⽅法,要求是输⼊的 pointCount 要⼤于零,当输⼊的值不满⾜条件的时候,会抛出不安全异常,然后出现括号中提⽰,类似如下:
这样的话,仿写异常的好处⽴见分晓了,就是当我们在写⼀个⼯具类,传⼊参数不符合条件的话,在运⾏期就能帮我们检测⾃⼰的代码中是否有不规则的东西,能帮我们检测代码的质量。
所以,这⽆疑是极好的!
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论