1、try.....catch
try{
//执行代码块
} catch(Exception e){
e.printStackTrace(); //打印异常信息
System.out.printf("程序异常了");
} //可接多个catch语句抛出异常
getMessage() 方法: Exception类的方法之一, 返回异常的原因, 上面的 / by zero 就是这个方法输出的.
printStackTrace(): Exception类的方法之一, 在屏幕输出函数栈信息, 也就是异常出现的地方.
2、Try...catch...finally
try{
可能出异常的若干行代码;
}
catch(ExceptionName1 e){
产生ExceptionName 1的处理代码;
}
catch(ExceptionName2 e){
产生ExceptionName 2的处理代码;
}
...
finally{
无论如何, 最终肯定会执行的代码
}
catch与catch之间不能有任何代码.、 finally里不能访问catch里捕捉的异常对象e、每1个异常对象只能由catch它的catch子句里访问.
3、 throw 和throws的机制和用法
public void fun () throws IOException{
// 方法体。
}
throws 表示该方法可能抛出IOException,调用该方法的程序必须try -catch IOException 或者 象该方法一样抛给上层调用者 :也就是先声明一个异常,然后会抛出这个异常。
public void fun1(){
try{
fun();
}catch( IOException e){
e.printTrace();}
}
public void fun1() throws IOException{
fun();
}
throw: 手动抛出一个异常
public void fun () throws NullPointerException{
// 方法体。
if(testVar == null)
throw new NullPointerException("test Exception");
}