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的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java try的用法_Java中try、catch的使用方法相关推荐

  1. java try的用法_Java中try()catch{}的使用方法

    今天撸代码的时候发现了一段这样的代码 try( Connection conn=DriverManager.getConnection(url,user,pass); Statement stmt=c ...

  2. java的character用法_Java中Character类的使用方法

    Character类的使用方法 Character:字符类型 1.属性. static int MIN_RADIX :返回最小基数. static int MAX_RADIX :返回最大基数. sta ...

  3. java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?

    java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int length=arr.length;//求数组的长度 ------------------------- ...

  4. java 定义整数数组_JAVA中数组的正确定义方法是什么?

    数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. §5.1一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任 ...

  5. java 调用js脚本_Java中使用JavaScript脚本的方法步骤

    简介 Nashorn Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引 ...

  6. java valueof的用法_Java中String.valueOf()方法的使用

    Java中String.valueOf()方法的使用 (2013-06-21 18:07:34) 标签: it Java中String.valueOf() 方法的使用 1. 由 基本数据型态转换成 S ...

  7. java try的用法_Java try和catch的使用

    为防止和处理一个运行时错误,只需要把你所要监控的代码放进一个try块就可以了.紧跟着try块的,包括一个说明你希望捕获的错误类型的catch子句.完成这个任务很简单,下面的程序包含一个处理因为被零除而 ...

  8. java .this的用法_JAVA中this用法小结

    Java中的this随处可见,用法也多,现在整理有几点: 1. this是指当前对象自己. 当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用.如下面这个例子中: 1 publi ...

  9. java lambda map用法_Java 中如何使用 lambda 表达式填充 Map?

    Map是一个集合对象,它将键映射到Java中的值. 数据可以存储在键/值对中,并且每个键都是唯一的. 这些键/值对也称为映射条目. 在下面的示例中,我们可以使用lambda表达式填充映射.我们已经将字 ...

最新文章

  1. Spring Cloud(三):Eureka控制台参数说明
  2. python人脸识别毕业设计-用python3.6在电脑上实现用摄像头来人脸识别源程序
  3. dedecms织梦修改标题默认长度
  4. 联想n308 android 一体机,附文:N308设计回顾_联想 N308_一体电脑评测-中关村在线...
  5. Traumland--梦乡--IPA--德语
  6. Collections集合工具类的方法_sort(List)
  7. strace用法学习
  8. SAP Spartacus 4.0 关于SSR CSS 处理逻辑的一些 warning 消息的处理
  9. 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
  10. [bzoj4592] [Shoi2015]脑洞治疗仪
  11. Nutanix推出自动化功能,助力企业保证业务连续性
  12. Android中对已安装应用的管理实现
  13. js 获取iframe页面元素
  14. ASP.NET自定义控件组件开发
  15. 粒子群优化算法python_粒子群优化算法(PSO)
  16. 数据结构算法—非递归算法求二叉树的叶子结点(C语言)
  17. 抖音短视频标题什么样的容易火:国仁楠哥
  18. 微生物群也有记忆 | 微生物群能被“训练”
  19. 我的世界java版多核优化_Minecraft 我的世界服务器优化教程 —— 让多带50%的玩家不再是梦...
  20. matplot.pyplot 绘图学习

热门文章

  1. mysql python连接时、指定的ip地址被转接了_pythonmysql.connector模块使用了错误的IP地址...
  2. java 弹出软键盘_Android开发之弹出软键盘工具类简单示例
  3. php伪静态限制网页播放视频,学习猿地-php伪静态后html不能访问怎么办
  4. Win11提示无法安装程序怎么办 Win11提示无法安装程序的解决方法
  5. iis7.5 php伪静态,Windows Server 2008 下WordPress IIS7.5伪静态规则设置(最新)
  6. CAS单点登录详细流程
  7. java水泡_JAVA图像处理系列(八)——艺术效果:水泡
  8. mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复
  9. selenium之 chromedriver与chrome版本映射表_NLP实战篇之tf2训练与评估
  10. 使用 ref 对已渲染到页面的节点进行标记