try catch finally
java提供异常处理
1)try 试图
2)catch 捕获异常
3)finally 死活都执行
4)throw 抛出异常
5) throws 接受异常
import org.junit.Test;
/*
* java提供异常处理
* 1)try 试图
* 2)catch 捕获异常
* 3)finally 死活都执行
* 4)throw 抛出异常
* 5)throws 接受异常
*/
public class TestException {
/*
* 处理异常方法
* 可能出现错误的代码必须使用try+catch包裹
* 出错也好,不出错也好,都执行finally中的内容(释放资源)
*
* 不要直接报错,而可以把错误信息打印控制台,用户看不到
*/
@Test //处理数组越界异常,不能给用户发出“乱码”错误
public void arrayErr() throws Exception { //这个方法接受异常,抛给JUnit系统,报错
int[] a= {1,2,3,4,5};
try {
//可能出现异常
//这里的代码出错自动跳转catch中,如果不出错,不执行catch,继续执行
System.out.println(a[10]);
}catch(Exception e) { //全局错误,e是错误实例名,如果有错误,把错误信息存放在e对象中
System.out.println("出错了:");
System.out.println(e.getMessage());
//e.printStackTrace(); //把错误的信息打印到控制台,用户看不到,开发者可以看到
//出错自己处理不了,抛出异常。抛出错误就必须有人接受错误,它去处理,你这个方法调用者
//Unhandled exception type Exception 这个错误需要去处理(接盘)
throw new Exception("程序出错了");
}finally {//不论是否出错都执行这里面的代码,释放资源
System.out.println("死活我都执行");
}
}
}