您的位置:首页 > 编程语言 > Java开发

java学习笔记2——异常

2016-07-22 14:34 183 查看
1、Java异常介绍

总类;Throwable 是一个接口  有两个子类 Exception (z主要了解和使用的), Error(系统级别的异常,不可控)

Exception 下面很又很多异常,常见有空指针异常,造型异常....

异常捕获机制:try-catch

try块:包含可能出现的错误代码片段

catch块:包含try块出现错误的种类,可以出现1-n次。好的编程习惯在最后一次捕获Exception异常

catch的捕i获由上到下,所以不要把父类的异常放上面,下面的子类异常永远不会执行,报错

2、throw

主动抛出异常。一般使用在业务逻辑上的出错。

方法中有参数的时候,方法由逻辑引发的错误就可以使用主动抛出异常。若是由自身方法引发的异常,应由方法自身解决

3、throws

使用在方法,因参数问题,方法自身不能解决,抛给方法的调用者。使用直接在方法后面加上 throws 异常的类型

--------------

throw 与 throws 的区别

throw是主动抛出异常

throws是方法中自身不能解决抛出异常给方法调用者解决

--------------

4、Exception异常

运行时异常:在编译时不进行检查的异常(RuntimeException)

可检查异常:在编译的时候进行检查

在方法中使用throw时,如果是运行时异常可以不要再方法中抛出异常,如果不是咋需要使用关键字throws抛出异常,否则话编译不通过!!

常见的运行时异常有:NullPointerException  (空指针)、StringIndexOutOfBoundsException (字符串数组越界)、 造型异常

5、finally

无条件执行

public class FinallyDemo {
public static void main(String[] args) {
System.out.println(
test(null)+","+test("0")+","+test(""));
/**
* 输出结果?
* 1,0,2 
* 4,4,4正确结果
*/
}

public static int test(String str){
try {
return str.charAt(0)-'0';
} catch (NullPointerException e) {
return 1;
}catch (RuntimeException e) {
return 2;
}catch (Exception e) {
return 3;
}finally{//在这里面最好不要return
return 4;
}
}

一个小例子:最后结果是4,4,4 不是1,0,2.

可以说finally语句无条件太强大了,可以覆盖原来的return返回值

----------

作为笔试题目比较......

----------

6、继承某个类时,其中方法有抛出异常的话,重写这个方法的的异常可以不写,或者抛出的异常只能是父类方法中异常中的子类(也相当于异常已有继承关系)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息