----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
在上一篇博客即浅谈Java当中的异常处理机制中简单介绍了几种异常处理方法,下面在介绍两种:
一、使用多重catch处理异常
一段代码可能引发多重类型的异常,这时,可以再一个try语句之后跟多个catch语句块,分别处理不同的异常,代码如下:
import java.util.Scanner;
import java.util.InputMismatchException;
public class Test6{
public static void main(String[] args){
try{
Scanner in=new Scanner(System.in);
System.out.print("请输入被除数:");
int num1=in.nextInt();
System.out.print("请输入除数:");
int num2=in.nextInt();
System.out.println(String.format("%d/%d=%d",num1,num2,num1/num2));
}
catch(InputMismatchException e){
System.err.println("被除数和除数必须是整数。");
}
catch(ArithmeticException e){
System.err.println("除数不能是0.");
}
catch(Exception e){
System.err.println("其他未知异常。");
}
finally{
System.out.println("感谢使用本程序。");
}
}
}
这样系统就会根据异常的类型,自动选择方法进行相应的处理。下面介绍throws方法处理异常。
二、使用throws声明抛出异常
throws方法可以声明多个异常以通知调用者。其核心代码如下:
public class Test7{
public static void main(String[] args){
try{
divide();
}
catch(InputMismatchException e){
System.err.println("被除数和除数必须是整数。");
}
catch(ArithmeticException e){
System.err.println("除数不能是0.");
}
catch(Exception e){
System.err.println("其他未知异常。");
}
finally{
System.out.println("感谢使用本程序。");
}
}
}
//通过throws方法生命抛出异常
public static void divide()throws Exception{
Scanner in=new Scanner(System.in);
System.out.print("请输入被除数:");
int num1=in.nextInt();
System.out.print("请输入除数:");
int num2=in.nextInt();
System.out.println(String.format("%d/%d=%d",num1,num2,num1/num2));
}
在以上方法中,在main方法中就知道divide()方法中跑出了异常,可以采用两种方法进行处理:
(1) 通过try-catch捕获并处理异常;
(2)用过throws继续声明异常,如果调用者不知道如何处理异常,可以继续通过throws方法声明异常,让上一级的调用者处理异常。main()方法声明的异常由java虚拟机处理。
以上便是java当中异常处理机制,希望大家能够多多的学习,这样就会明白在你的写的程序中选取何种方法才是最好的。感谢黑马程序员培训这个平台,让我可以和大家分享和交流,后期会有更多的精彩分享,希望大家多多关注。
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看: