1、当前方法抛出异常时(交给java虚拟机执行异常处理)
public class ExceptionTest5 {
public void method(String str) throws MyException{
if(str == null){
throw new MyException("传入的字符串参数不能为null");
}
else{
System.out.println(str);
}
}
/*
* 根据多态,也可以抛出 Exception类型的异常:
* 1) throws Exception
* 2) 捕获也可以这样写 catch(Exception e)
*/
public static void main(String[] args) throws MyException{
try{
ExceptionTest5 test = new ExceptionTest5();
test.method(null);
}catch(MyException e){
e.printStackTrace();
}
finally{
System.out.println("异常处理完毕");
}
System.out.println("程序执行完毕");
}
}
执行结果为:
异常处理完毕
程序执行完毕
com.ahuier.exception.MyException: 传入的字符串参数不能为null at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6) at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)
2、当前方法不抛出异常
public class ExceptionTest5 {
public void method(String str) throws MyException{
if(str == null){
throw new MyException("传入的字符串参数不能为null");
}
else{
System.out.println(str);
}
}
/*
* 根据多态,也可以抛出 Exception类型的异常:
* 1) throws Exception
* 2) 捕获也可以这样写 catch(Exception e)
*/
public static void main(String[] args) {
try{
ExceptionTest5 test = new ExceptionTest5();
test.method(null);
}catch(MyException e){
e.printStackTrace();
}
finally{
System.out.println("异常处理完毕");
}
System.out.println("程序执行完毕");
}
} 执行结果: com.ahuier.exception.MyException: 传入的字符串参数不能为null at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6) at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22) 异常处理完毕 程序执行完毕