Java中try、catch的使用方法
Java中有两种处理异常的方式,分别是用throws抛出异常、用try、catch捕获异常。
try-catch
在Java
try-catch语句的语法格式:
try{ //代码块 }catch(Exception1 e){ //抛出异常后所要进行的操作 }
当try语句当中捕获到异常时,会将异常抛出到catch语句中匹配异常类型,当异常和catch后面的异常类型相匹配时,则catch语句将会执行。
举个最基础的例子,除数不能为0
try中的异常与catch后面的异常类型匹配的情况:
try{ int i = 1/0;//发生异常立即跳往catch语句中执行,不执行异常代码下面的代码 System.out.println("输出结果为:" + i); }catch(ArithmeticException e){ e.printStackTrace(); System.out.println("编译报错,除数不能为0"); }
输出结果:
try中抛出的异常与catch后面的异常类型不匹配的情况:
try{ int i = 1/0;//发生异常立即跳往catch语句中执行,不执行异常代码下面的代码 System.out.println("输出结果为:" + i); }catch(NullPointerException e){ e.printStackTrace(); System.out.println("编译报错,除数不能为0"); //因为异常类型不匹配所以该catch语句并未执行 }
输出结果:
一个try语句可以接多个catch语句
当有多个catch语句时,try部分的语句如果发生异常,就会在依次在各个catch语句中试图匹配异常类型。
try{ int i = 1/0;//发生异常立即跳往catch语句中执行,不执行异常代码下面的代码 System.out.println("输出结果为:" + i); }catch(ArithmeticException e){ e.printStackTrace(); System.out.println("运算条件异常"); //try语句捕获的异常与该catch语句后的异常相匹配,所以执行该catch语句 }catch(NullPointerException e){ e.printStackTrace(); System.out.println("空指针异常"); //try语句捕获的异常与该catch语句后的异常不匹配,所以不执行该catch语句 }
JDK1.7之后还有一种不常用的写法:
try{ int i = 1/0;//发生异常立即跳往catch语句中执行,不执行异常代码下面的代码 System.out.println("输出结果为:" + i); }catch (NullPointerException | ArithmeticException e) { e.printStackTrace(); if (e instanceof NullPointerException) System.out.println("空指针异常"); if (e instanceof ArithmeticException) System.out.println("运算条件异常"); }
这种写法需要通过instanceof 进行判断具体的异常类型。
两种写法的输出都是一样的:
在catch内部,通常下面的方法输出异常信息:
getMessage() 返回一个字符串对发生的异常进行描述。
printStackTrace() :打印异常信息出错的位置及原因。
到此这篇关于Java中try、catch的使用的文章就介绍到这了,更多相关Java中try catch的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring中的BeanFactory与FactoryBean区别详解
这篇文章主要介绍了Spring中的BeanFactory与FactoryBean区别详解,BeanFactory是一个接口,它是spring中的一个工厂,FactoryBean也是一个接口,实现了3个方法,通过重写其中方法自定义生成bean,需要的朋友可以参考下2024-01-01SpringBoot Security使用MySQL实现验证与权限管理
安全管理是软件系统必不可少的的功能。根据经典的“墨菲定律”——凡是可能,总会发生。如果系统存在安全隐患,最终必然会出现问题,这篇文章主要介绍了SpringBoot安全管理Spring Security基本配置2022-11-11
最新评论