Java 异常

来源:互联网 发布:java自学书籍推荐书目 编辑:程序博客网 时间:2024/06/07 01:48

1. 当异常发生时,该异常对象被创建并且导致该错误的方法中被抛出(throw)。该方法可以选择自己处理异常或传递该异常。被捕获(caught)并处理。可能由java运行时系统产生,也可手工代码产生。被抛出的异常与违反语言规范或超出java执行环境限制的基本错误有关

2. try-catch

try{

System.out.print("请输入你的年龄");

Scanner input=new Scanner (System.in);

int age= input.nextInt();

System.out.println("输入整数";)

} catch(InputMismatchException e){

System.out.println("你应该输入整数");

}

System.out.println("程序结束");

3. 多个catch块

catch(ArithmeticException e){

e.printStackTrace();

System.out.println("除数不能为0");

}

4. 注意:先子类再父类编写catch块

5.异常处理块和return 语句的执行顺序:

try →catch(catch有return则预先确定返回路径)→执行Finally,如果包含return则执行Finally的return语句;否则执行catch中的return,并且在Finally中对返回值进行的修改不会保存,因为已经预定好了返回路径。如果整个异常处理块没有return语句,则跳出块继续执行,直到执行完return语句。

6. 所有异常类型都是内置类Throwable的子类。下面一个分支是exception。在Exception分支中有一个重要的子类RuntimeException。该类型的异常自动为你编写的程序定义并且包括被零除和非法数组索引这样的错误。另一个分支由Error作为顶层,与系统本身有关。

7. 异常抛出

throw----将产生的异常抛出

throws---声明将要抛出何种类型的异常(声明)

              public void void divide(int one, int two) throws Exception{

if(two==0){

throw new Exception ("除数不能为0");

}else{

System.out.println("结果为"+one/two);

}

}

8. 自定义异常

class 自定义异常类 extends 异常类型{

public DrunckException(String message){

super(message);

}

}













0 0
原创粉丝点击