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来捕获。