java 异常总结

一:异常结构图及基本概念java

Throwable类:全部异常与错误的超类。ui

Error类:程序没法处理的错误,表示运行应用程序中较严重问题,不须要捕获this

Exception类:程序自己能够处理的异常,能够捕获spa

RuntimeException及其子类:能够捕获此异常,也能够不捕获。建议不捕获。.net

非运行时异常:必须捕获的异常。code

二 try...catch...finally对象

1 try{
2     //监控有可能出现异常的代码       
3 }catch(Exception e){
4     //捕获异常后执行的代码       
5 }finally{
6     //无论是否捕获到异常,都要执行的代码,经常使用于释放资源  
7 }

try...catch...finally不能单独使用,只能使用try...catch,try...finally;try...catch...finally这三种结构blog

try...catch...finally能够嵌套继承

 1 public class Test2 {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         int []a={1,2,3};
 6         try{
 7             //System.out.println(a[4]);
 8             System.out.println(a[0]);
 9         }catch(ArrayIndexOutOfBoundsException e){
10             e.printStackTrace();
11         }finally{
12             System.out.println(a[2]);
13         }
14     }
15 
16 }

 

三:throw,throws资源

throws:用于方法体外。声明可能抛出的全部异常信息并交给该方法的调用者处理或继续抛出异常。

throw:用于方法体内,抛出一个具体的异常。能够直接在方法体内捕获异常,或者经过throws抛出异常。

 

 1 public class Test3 {
 2 
 3     public static void main(String[] args) throws Exception {
 4         // TODO Auto-generated method stub
 5         int []a={1,2,3};
 6         //System.out.println(a[0]);
 7         System.out.println(a[4]);
 8     }
 9 
10 }

四:自定义异常

 在程序中使用自定义异常类,大致可分为如下几个步骤。
(1)建立自定义异常类。(继承Exception或Throwable,须要时可重写getmessage方法)。
(2)在方法中经过throw关键字抛出异常对象。
(3)若是在当前抛出异常的方法中处理异常,能够使用try-catch语句捕获并处理;不然在方法的声明处经过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操做。
(4)在出现异常方法的调用者中捕获并处理异常。

 1 public class Test4 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8             try {
 9                 throw new MyException("aaa");
10                 
11             } catch (MyException e) {
12                 // TODO Auto-generated catch block
13                 e.printStackTrace();
14                 //e.getMessage();
15             }
16     }
17 
18 }
19  
20 class MyException extends Exception{
21     String message;
22     MyException(String s){
23         super(s);
24     }
25 /*    MyException(String s){
26         this.message=s;
27     }
28     public String getMessage(){
29         return message;
30     }*/
31     
32 }

 

 

 

 

参考博客:

深刻理解java异常处理机制

Java异常体系结构

java异常处理的throw和throws的区别

相关文章
相关标签/搜索