程序中的异常处理 篇

来源:互联网 发布:方伯谦 知乎 编辑:程序博客网 时间:2024/06/10 22:29
程序中的异常处理 篇
一.java异常分为:
  (1)Error: 错误 
          一般指的是重大错误,这种错误程序员处理不了
          如: 虚拟机错误 (jvm machine Error ....)  
  (2)Exception:
           运行时异常:
               指的是在编译阶段正常通过,运行时才
               才有可能产生的异常.
              RuntimeException: 父异常
二.常见异常有:
   1) AirthmeticException: 算术运算异常 (by zero)
   2) NullPointerException: 空指针异常
   3) ClassCastException:   类转换异常
   4) IndexOutOfBoundsException:数组下标越界异常
         ArrayIndexOutOfBoundsException 数组
         StringIndexOutOfBoundsException 字符
   5) NumberFormatException: 数字格式转换异常
   6)ClassNotFoundException 指定的类不存在
   7)IOException 输入输出异常
   8)FileNoFoundException  找不到文件异常

三.异常处理方法有哪些:
  第一种: 抛出异常  throws 异常类(子类|父类) 
  第二种:人为抛出异常
  第三种: 捕获异常   try..catch..finally  
  第四种:  自定义异常

注:  第一种: 抛出异常: 又叫"回避异常",指的是产生异常时,交给上一级处理,最终,都会交给jvm,jvm的处 


       理方式:直接在控制台报错,提示异常类型以及引起行数等信息.


    第二种:人为抛出异常
eg: 
     public int div (int a, int b ) {
         if( b==0 ){              
             throw  new 
            ArithemicException("除数不能为0");; 
         }
     }


第三种: 捕获异常   try..catch..finally 
 public void p(int x){
 try{
  ...
 }catch(Exception e){
  ...
 }finally{
  ...
 }
}
第四种:  自定义异常


创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。
例如:
 public class MyException extends Exception{
  public MyException(){}
  public MyException(String smg){
   super(smg);
  }
 }


四:Java异常处理的原则和技巧
 
1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。
2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
4、不要把自己能处理的异常抛给别人。
5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。
0 0
原创粉丝点击