美文网首页
Java异常处理(一)

Java异常处理(一)

作者: 一杯清凉的水 | 来源:发表于2018-03-01 13:43 被阅读0次
    • 先创建一个自定义异常类 CCException ,再添加搭配 BB 类里捕捉异常的处理中。
    package z1;
    
    //自定义异常
    public class CCException extends Exception{
    
        String message;
        public CCException(String messageError){
            message=messageError;
        }
        public String getMessage(){
        
            return message;
        }
    }
    
    package z1;
    
    public class BB{
        
        static int arr(int x,int y)throws CCException{
        
            if(y<0)
            {
                throw new CCException("不能为负数");
            }
            
            return x/y;
        }
        public static void main(String[] args){
    
            try{
                
                int value=arr(12,-3);
                System.out.println(value);
            }catch(CCException e){
                
                System.out.println(e.getMessage());//自定义异常  
            }catch(ArithmeticException e){
                
                System.out.println("算术异常"); 
            }catch(Exception e){
                
                System.out.println("程序发生了其他异常");    
            }
        }
    }
    
    • 运行结果:


      image.png

    注意事项:

    [java] view plain copy
    void method1() throws IOException{}  //合法    
       
    //编译错误,必须捕获或声明抛出IOException    
    void method2(){    
      method1();    
    }    
       
    //合法,声明抛出IOException    
    void method3()throws IOException {    
      method1();    
    }    
       
    //合法,声明抛出Exception,IOException是Exception的子类    
    void method4()throws Exception {    
      method1();    
    }    
       
    //合法,捕获IOException    
    void method5(){    
     try{    
        method1();    
     }catch(IOException e){…}    
    }    
       
    //编译错误,必须捕获或声明抛出Exception    
    void method6(){    
      try{    
        method1();    
      }catch(IOException e){throw new Exception();}    
    }    
       
    //合法,声明抛出Exception    
    void method7()throws Exception{    
     try{    
      method1();    
     }catch(IOException e){throw new Exception();}    
    }  
    

    Java异常类层次结构图

    Java异常类层次结构图
    1. runtimeException子类:

    1、 java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。

    2、java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。

    3、java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等

    4、java.lang.ClassNotFoundException 找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。

    5、java.lang.NegativeArraySizeException 数组长度为负异常

    6、java.lang.ArrayStoreException 数组中包含不兼容的值抛出的异常

    7、java.lang.SecurityException 安全性异常

    8、java.lang.IllegalArgumentException 非法参数异常

    2.IOException

    IOException:操作输入流和输出流时可能出现的异常。

    EOFException 文件已结束异常

    FileNotFoundException 文件未找到异常

    3. 其他

    ClassCastException 类型转换异常类

    ArrayStoreException 数组中包含不兼容的值抛出的异常

    SQLException 操作数据库异常类

    NoSuchFieldException 字段未找到异常

    NoSuchMethodException 方法未找到抛出的异常

    NumberFormatException 字符串转换为数字抛出的异常

    StringIndexOutOfBoundsException 字符串索引超出范围抛出的异常

    IllegalAccessException 不允许访问某类异常

    InstantiationException 当应用程序试图使用Class类中的newInstance()方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常

    参考资料:

    相关文章

      网友评论

          本文标题:Java异常处理(一)

          本文链接:https://www.haomeiwen.com/subject/byegxftx.html