您好,登录后才能下订单哦!
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来捕获。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。