Java异常----受查(Checked)异常和运行时(Runtime)异常

1.•非受查异常(unchecked exception)

站在用户的角度思考问题,与客户深入沟通,找到名山网站设计与名山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、域名申请虚拟主机、企业邮箱。业务覆盖名山地区。

–编译器不要求强制处置的异常

–java.lang.RuntimeException类及它的子类都是非受查异常

•错误的类型转换异常:ClassCastException

•组下标越界异常:ArrayIndexOutOfBoundsException

•空指针访问异常:NullPointerException

除零溢出异常:ArithmeticException

2.•受查异常(checked exception)

–编译器要求必须处置的异常

•没有找到具有指定名称的类:ClassNotFoundException

•访问不存在的文件异常:java.io.FileNotFoundException

•操作文件时发生的异常:java.io.IOException

•操作数据库时发生的异常:java.sql.SQLException

[java] view plaincopy

package com.mys.ajax;  

  

import java.io.IOException;  

  

public class CatchTest {  

  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

        test1();  

        test2();  

        test3();  

        test4();  

        test5();  

    }  

  

    private static void test1() {  

        try{  

            System.out.println("www.csdn.net");  

        }catch (IndexOutOfBoundsException ex) {  

            ex.printStackTrace();  

        }  

    }  

    private static void test2() {  

        try{  

            System.out.println("www.csdn.net");  

        }catch (NullPointerException ex) {  

            ex.printStackTrace();  

        }  

    }  

    private static void test3() {  

        try{  

            System.out.println("www.csdn.net");  

        }catch (IOException ex) {//1.  

            ex.printStackTrace();  

        }  

    }  

    private static void test4() {  

        try{  

            System.out.println("www.csdn.net");  

        }catch (ClassNotFoundException ex) {//2.  

            ex.printStackTrace();  

        }  

    }  

    private static void test5() {  

        try{  

            System.out.println("www.csdn.net");  

        }catch (Exception ex) {  

            ex.printStackTrace();  

        }  

    }  

  

}  

上面1和2出编译是就报错,由于编译器认为System.out.println("www.csdn.net"); 这句话不可能抛出这两个异常。

根据Java语言规范,如果一个catch子句试图捕获一个Checked异常,那么它对应的try子句必须可能抛出该Checked异常或者其子类异常,否则,编译器即提示编译错误!

区别于RuntimeException异常,Runtime异常非常灵活,无须显示声明抛出,只要程序有需要,即可以在任何有需要的地方使用try...catch来捕获。


网站题目:Java异常----受查(Checked)异常和运行时(Runtime)异常
文章URL:http://myzitong.com/article/ghphii.html