黑马程序员_浅谈Java当中的异常处理机制
来源:互联网 发布:美女与野兽 知乎 编辑:程序博客网 时间:2024/05/23 05:10
----------- 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学习型技术博客、期待与您交流! ----------------------
详情请查看:
- 黑马程序员_浅谈Java当中的异常处理机制
- 黑马程序员_关于java的处理异常机制
- 黑马程序员_Java当中异常处理机制2
- 黑马程序员_关于Java异常处理机制的深入理解
- 黑马程序员_关于java异常机制的学习
- 黑马程序员_毕向东JAVA基础_设计模式&异常处理机制
- 黑马程序员:JAVA异常处理机制
- 【黑马程序员】java中的异常处理机制
- 黑马程序员---java异常处理机制
- 黑马程序员--Java异常处理机制
- 黑马程序员-Java异常处理机制
- 黑马程序员-java异常处理机制
- 黑马程序员----java异常处理机制
- 黑马程序员-----java异常处理机制
- 黑马程序员-【JAVA基础】-异常处理机制
- 黑马程序员-Java异常处理机制
- 黑马程序员_异常机制
- 黑马程序员_异常机制
- fedora 17 使用gcc命令,未找到该命令
- MapReduce实现推荐系统
- android 中envsetup 输出的全局变量
- 编译linux内核
- Android EditText 自动弹出软键盘,遮挡输入框
- 黑马程序员_浅谈Java当中的异常处理机制
- Selenium寻找元素定位 id findElement(by.id(“id”)) name findElement(by.name(“name”)) class_name findE
- 检测APK版本有更新,手动升级安装
- 如何从ArcMap外与ArcMap交互
- OpenCV人脸识别的原理 .
- ATL COM中IDL文件里定义函数有默认值的参数的写法
- JAVA中Array的常用方法
- WebDriver拾级而上·之十六 Table控件的处理
- 东阳用友软件,东阳用友财务软件,东阳用友进销存,东阳0A,东阳HR,东阳ERP,东阳PDM,东阳CRM,东阳PLM,东阳U8,东阳U9,东阳NC,东阳T+,东阳BQ,东阳T3,东阳T6,东阳用友年度结