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块将被忽略。
  • 异常子类一定要位于异常父类之前,如下图:

-------------------------------------------------------------------------------------------------------------------------------------------------

最新文章

  1. 获取URL中的参数
  2. Sqlserver 语法总结
  3. js加载顺序
  4. 显示所有SAP图标的ABAP代码
  5. Android Handler的简单使用
  6. 《A First Course in Abstract Algebra with Applications》-chaper1-数论
  7. hdu 4758 Walk Through Squares
  8. springMVC框架下JQuery传递并解析Json数据
  9. 十二月总结-and-2016年终总结
  10. vscode中使用markdown
  11. 屏蔽eslint代码格式报错
  12. GiBbook实用配置以及插件
  13. modsign: could&#39;t get uefi db list
  14. python 三方面库整理
  15. Error creating bean with name &#39;enableRedisKeyspaceNotificationsInitializer&#39; defined in class path resource
  16. 06: linux下python开发环境梳理
  17. Kafka基础认识
  18. uafxcwd.lib(afxmem.obj) : error LNK2005: &quot;void * __cdecl operator new(unsigned int)&quot;解决办法
  19. MathType手写输入面板清空的方法
  20. Unity3D-制作火焰效果

热门文章

  1. B5248 [2018多省省队联测]一双木棋 状压dp
  2. [AtCoder3954]Painting Machines
  3. Java -JVM:JVM百科
  4. PCB MongoDB 数据库 Collection集合导出与导入
  5. php导出mysql源码
  6. thinkphp的session用法
  7. npm搭建React项目
  8. CentOS7 搭建Kafka(二)kafka篇
  9. JavaScript异步加载方案
  10. codechef MAY18 div2 部分题解