Java异常处理

来源:互联网 发布:小学生英语动画软件 编辑:程序博客网 时间:2024/05/21 14:02

在Java中 如果某个方法抛出异常 

1可以在当前方法中进行捕捉然后进行该异常的处理,

2亦可以将异常向上抛出,由方法调用者来处理。


异常产生后如果不进行任何的处理 那么就将在出现异常的位置终止 不再执行下面的语句。


异常的组成

捕获异常由 try catch 和 finally 3部分组成 try 中包含的代码是可能发生发生异常的Java语句

catch 是用来激发被捕获的异常 finally 无论之前try中的代码是否发生异常 都会进入到finally中

try{

}

Catch(Exception1 e){

}//捕获异常

Catch(Exception2 e){

}//捕获异常

finally{

}


例子

try{int age=Integer.parseInt("30L");sop("No this code");}Catch(Exception e){e.printStackTrace();}sop("this code ok");
}
try中发生异常后的代码没有被执行 catch和下面的代码可以正常执行


3 e是一类对象 可以进行3中常见的处理

getMessage();//输出错误的性质


toString();//给出异常的类型与性质

printStackTrace();//指出异常的类型 性质 栈层次 以及出现的位置



4自定义的异常

1 创建自定义的异常 继承Exception类

2 在方法中通过throw关键字抛出异常对象

3 如果在当前抛出异常的方法中处理异常 可以使用try catch 语句。

  如果不想在抛出异常的地方处理异常 那么可以利用关键字Throws 来抛给方法的调用者 并进行下一步的操作


throws代表是给上级的调用者处理我的异常

package book;public class Test {// 让他继承我自己定义的异常类public static void main(String[] args) {// TODO Auto-generated method stubint x = avg(1,3);}static int avg(int num1, int num2) {try{if(num1==1){throw new MyException("给的数字不好啊");}}catch(MyException e) {e.printStackTrace();}return 0;}}
如果是Error 或者是 RunTimeException或者他们的子类 可以不使用throws关键字来声明要抛出的异常 编译仍能够顺利通过 但是在运行时会被系统抛出



0 0
原创粉丝点击