突如其来的“中断异常”,我(Java)该如何处理?
2024-08-24 01:17:39
3.try-catch块
try语句块中代码执行时发生三种情况:
- try语句块中代码正常执行完毕,没有任何异常,那么catch语句块的代码将不会被执行。
import java.util.*;
public class Count {
public static void main (String []args){
int a , b;
Scanner read = new Scanner(System.in);
try{
System.out.print("请输入a:");
a = read.nextInt();
System.out.print("请输入b:");
b = read.nextInt();
System.out.println("a+b="+(a+b));
}catch(InputMismatchException ex){
System.out.println("不可以,请输数字!");
}
System.out.println("<<<<欢迎使用!>>>>");
}
}
输入100和200后程序顺利进行!
- try语句块中代码执行过程中产生异常,并且该异常跟catch中声明的异常类型相符合,那么try语句块中剩余的代码将被忽略,catch语句块的代码将被执行。
还是上面代码,输入100和a后程序运行如下: - try语句块中代码执行过程中产生异常,但是抛出的异常并没有在catch语句块中声明,那么这个时候程序会立刻终止。
4.try-catch-finally块
在catch子句后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行。
- 代码示例:
import java.util.*;
public class Count {
public static void main (String []args){
int a , b;
Scanner read = new Scanner(System.in);
try{
System.out.print("请输入a:");
a = read.nextInt();
System.out.print("请输入b:");
b = read.nextInt();
System.out.println("a+b="+(a+b));
}catch(Exception ex){
System.out.println("不可以,请输数字!");
}finally{
System.out.println("<<<<欢迎使用!>>>>");
}
}
}
- 运行结果:
5.多重catch块
- 一段代码可能会产生多个异常。
- 依次对每个catch块声明的异常对象进行检查,找到执行第一个与try抛出的异常类型匹配的catch块,之后的catch块将被忽略。
- 异常子类一定要位于异常父类之前,如下图:
-------------------------------------------------------------------------------------------------------------------------------------------------
最新文章
- 获取URL中的参数
- Sqlserver 语法总结
- js加载顺序
- 显示所有SAP图标的ABAP代码
- Android Handler的简单使用
- 《A First Course in Abstract Algebra with Applications》-chaper1-数论
- hdu 4758 Walk Through Squares
- springMVC框架下JQuery传递并解析Json数据
- 十二月总结-and-2016年终总结
- vscode中使用markdown
- 屏蔽eslint代码格式报错
- GiBbook实用配置以及插件
- modsign: could&#39;t get uefi db list
- python 三方面库整理
- Error creating bean with name &#39;enableRedisKeyspaceNotificationsInitializer&#39; defined in class path resource
- 06: linux下python开发环境梳理
- Kafka基础认识
- uafxcwd.lib(afxmem.obj) : error LNK2005: ";void * __cdecl operator new(unsigned int)";解决办法
- MathType手写输入面板清空的方法
- Unity3D-制作火焰效果