异常(Exception)

来源:互联网 发布:mysql and not in 编辑:程序博客网 时间:2024/05/17 09:13

1、Java中异常的分类:

(1)Checked Exception(非 Runtime Exception)

(2)Unchecked Exception(Runtime Exception)

2、Java中所有的异常都直接或间接的继承自Exception。

3、一旦发生异常,程序就会停止,不再执行。

4、RuntimeException也是直接继承自Exception,叫做运行时异常,Java中所有运行时异常都直接或间接继承自RuntimeException。

5、java中凡是继承自Exception而不是RuntimeException的类都是非运行时异常。

6、异常一般的处理流程

try

{

//可能会发生异常的代码

}

catch(Exception e)

{

}

finally

{

}

无论程序是否会抛出异常,finally都会被执行。

7、不过try后面有多少个catch,只有一个catch会被执行。

8、对于非运行时异常(Checked Exception),必须对其进行处理,处理方法有两种:一种是使用try...catch...finally进行捕获,第二种是在调用该会产生异常的方法的方法声明throws Exception。(在main方法中继续抛异常,最终会由JVM来处理异常)

9、对于欲行时异常(Unchecked Exception),可以对其处理,也可以不对其处理。推荐不对其处理。

 

异常使用的一个例子:

package com.sailang.java;public class ExceptionTest1{public void method() throws Exception{System.out.println("Welcome");throw new Exception();}public static void main(String[] args){ExceptionTest1 ex = new ExceptionTest1();try{ex.method();} catch (Exception e){e.printStackTrace();}}}

10、NullPointException是空指针异常,出现该异常的原因在于某个引用为null,但你确调用了它的某个方法,这是就会出现异常。这个异常出现的概率很大!

package com.sailang.java;public class ExceptionTest2{public static void main(String[] args){String str = null;System.out.println(str.length());}}

 11、所谓自定义异常类就是继承自Exception类的一个子类。通常情况下,我们都会直接继承自Exception类,而一般不会继承自某个运行时的异常类。

自定义异常很简单,可以仿照JDK中的异常来写。

自定义异常类:

package com.sailang.java;public class MyException extends Exception{public MyException(){super();}    /**     *      * @param message 用于显示异常信息     */public MyException(String message){super(message);}}

使用异常类:

package com.sailang.java;public class ExceptionTest3{public void method(String str) throws MyException{if(str == null){throw new MyException("传入参数不能为空");}else{System.out.println(str);}}public static void main(String[] args){try{ExceptionTest3 ex = new ExceptionTest3();ex.method("lizhongyi");}catch(MyException e){e.printStackTrace();}finally{System.out.println("异常处理完毕");}System.out.println("程序执行完毕");}}

 

 

 

 

 

 

 

 

原创粉丝点击