第五章 异常以及代码Test
skywang12345-
https://www.cnblogs.com/skywang12345/p/3544168.html
Java异常(二) 《Effective Java》中关于异常处理的几条建议
https://www.cnblogs.com/skywang12345/p/3544287.html
Java异常(三) 《Java Puzzles》中关于异常的几个谜题
https://www.cnblogs.com/skywang12345/p/3544353.html
Java程序在执行过程中所发生的异常事件可分为两类:
Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理。
Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。
Exception又分为两种:
unckecked异常:即RuntimeException,运行时异常。
例如:ClassCastException 类型转换异常
ArrayIndexOutOfBoundsException 数组越界异常
NullPointerException 空指针异常
ArithmeticException 计算异常
。。。
checked异常:编译时异常。
例如:java.lang.ClassNotFoundException
java.lang.InterruptedException
java.io.FileNotFoundException
java.sql.SQLException
。。。
代码演示:
/*
*java.lang.ArithmeticException: / by zero
*/
public void NullPointerExceptionTest () {
try {
System.out.println(1/0);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
异常处理方式:
(1)throws方法头部抛出异常;
(2)throw在方法内部抛出异常;
(3)通过try-catch-finally
无论是throws还是throw,都是向上抛出,如果上级调用仍未处理则继续抛出,直到被try/catch捕获处理位置。
而try-catch-finally,要求catch根据具体的异常捕获最好,finally最终都会被处理,通常是用来释放资源用的。
第一种方式--throws方法头部抛出异常:
/**
* @author yto_yh
*
*/
public class TestException090501 {
//try catch
public void NullPointerExceptionTest () {
try {
System.out.println(1/0);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
// throws Exception
public void NullPointerExceptionTest01 ()
throws Exception{
System.out.println(1/0);
}
public void NullPointerExceptionTest02 () throws Exception {
int age = 0;
age = -100;
if(age<0)
{
ArithmeticException e = new ArithmeticException();//创建异常对象
throw e;//抛出异常
}
System.out.println(age);
}
public static void main(String[] args) {
TestException090501 t=new TestException090501();
try {
t.NullPointerExceptionTest02();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上一篇: 解析WPF绑定层次结构数据的应用详解
下一篇: Web里URL空格的转换方法