黑马程序员_浅谈Java当中的异常处理机制,java异常处理
黑马程序员_浅谈Java当中的异常处理机制,java异常处理
----------- android培训、java培训、java学习型技术博客、期待与您交流! -----------
异常处理机制就像人们平时可能遇到的意外情况一样,预先想好一些一些处理的办法。在程序执行代码时,若发生了异常,程序会按照预定的处理办法对异常进行处理,异常处理完成之后,程序继续运行。
Java的异常处理是通过5个关键字来实现的,即:try、catch、finally、throw、throws。
下面通过一个小实例来简单的了解一下他们具体的应用。例:编写程序实现根据提示输入被除数和除数,计算并输出商,最后输出“感谢使用本程序!”信息。
核心代码如下:
public class Test1{
public static void main(String[] args){
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)");
System.out.println("感谢使用本程序");
}
}
相信大家都知道,要是除数为0的话,程序是会出现异常的,并且出现异常后,不仅计算和输出商的语句不会执行,就连“感谢使用本程序”的语句也不会执行。下面我们使用以下方法处理异常
(1)使用if-else语句处理异常:
import java.util.Scanner;
public class Test2{
public static void main(String[] args)
{
Scanner in=new Scanner("System.in");
System.out.print("请输入被除数:");
int num1=0;
if(in.hasNextInt()){
num1=in.nextInt();
}
else{
System.err.println("输入的被除数不是整数,程序退出。");
System.exit(1);
}
System.out.print("请输入除数");
int num2=0;
if(in.hasNextInt()){
num2=in.nextInt();
if(0==num2){
System.err.println("输入的除数是0,请退出程序。");
System.exit(1);
}
}
else{
System.err.println("输入的被除数不是整数,程序退出。");
System.exit(1);
}
System.out.println(String.format("%d/%d=%d",num1,num2,num1/num2));
System.out.println("感谢使用本程序!");
}
}
使用if-else进行异常处理,有以下缺点:
1、代码臃肿,加入大量的异常处理情况判断和处理代码;
2、程序员吧大量的额精力放在异常处理代码上,必然要影响开发的效率;
3、难以穷举异常情况;
4、异常处理和业务代码搅浑在一起,影响代码的可读性。
(2)使用try-catch处理异常
import java.util.Scanner;
public class Test3{
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));
System.out.println("感谢使用本程序!");
}
catch(Exception e){
System.out.println("出现错误:除数和被除数必须是整数,"+"除数不能为0。");
}
}
}
使用try-catch语句会出现以下三种情况:
1、如果try语句正常执行,不会发生异常,那么catch语句块中的所有语句都会被忽略;
2、如果try语句块中的语句发生异常,并且和catch当中声明的一箱类型匹配,把么在try当中剩下的代码会被忽略,相应的catch语句块被执行;
3、如果try当中的语句异常,并且catch当中也没有声明,那个程序直接退出;
三、使用try-catch-finally处理异常
import java.util.Scanner;
public class Test4{
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));
System.out.println("感谢使用本程序!");
}
catch(Exception e){
System.out.println("出现错误:除数和被除数必须是整数,"+"除数不能为0。");
System.ot.println(e.getMessage());
}
finally{
System.out.println("感谢使用本程序!");
}
}
}
该种方法执行时分为两种情况:
1、如果try语句块中的所有语句正常执行,那么finally语句块也会被执行;
2、try语句块发生异常,不论异常是否被catch捕捉到,finally都将执行。
特别注意:try语句块必须存在,但是catch和finally可选,但是必须存在其一。
以上便是学习Java当中的异常处理机制,希望大家好好的研究,有可能一个小小的错误,会使公司损失很多或者是开发团队困惑不已。这时候就会应了那句老话,千里之堤毁于蚁穴。希望能对大家有所帮助,我也会获益匪浅。感谢黑马程序员培训这个平台。
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net/heima
相关文章
- 暂无相关文章
用户点评