版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38225558/article/details/82054100

try {
     可能出现异常的代码(包括不会出现异常的代码)
} catch (Exception e) {          //()里为接收try{}代码块中出现异常的类型
     如果出现异常时的处理方式
}

try-catch的执行顺序:

①从 try{ } 代码块中第一行开始执行,执行到出现异常的代码,jvm会创建一个异常对象
②判断catch中声明的异常类型是否能捕捉到jvm创建的异常对象
       i:  能捕捉到:直接跳到catch代码块中执行。  不会结束程序,继续从catch代码块后面的代码执行
      ii:  不能捕捉到:直接打印异常信息并结束程序
③try{} 中没有出现任何异常,把try中的所有代码执行完,跳过catch继续程序

注意:

1.能被catch捕捉到的条件 ==》try中创建的异常对象的类型与catch中声明的类型一致,或者是catch中声明的类型的子类。

2.如果只有一个捕捉指定类型的catch 只能捕捉对应类型的异常对象。  如果try中创建了其他类型的异常,捕捉不到。Jvm来处理异常

3.try{}代码块中存在多行代码会抛出异常的情况下,遇到第一个异常,后面代码的异常 只会被catch捕捉到异常信息但都将不会被执行

4.那么我们如何才能处理try{}中的每一个异常呢??

① 写多个catch : 每一个catch处理一种异常        ==>    try{ }catch(){ }catch(){ }catch(){ }
       效果:当try中出现了异常,直接跳到第一个catch处判断,是否能捕捉。
            a:能捕捉:直接处理。  然后跳过trycatch往后执行
            b:不能捕捉:跳到下一个catch继续判断。如果下一个能捕捉,重复第一步的效果
            c:所有catch都不能捕捉 ==> 交给jvm处理:结束程序,在控制台打印异常信息
  ② 写一个catch  要求:catch中的异常类型必须是try中抛出的所有异常的父类
        
    注意事项:写多个catch时,下边的catch声明的异常类型不能是上边的catch声明的子类。
                      多个catch时,异常父类必须在下边。   (没有继承关系时,就不用考虑此情况)

try{  }catch(){  }catch(){  }...finally{  }                   (catch可以有多个,也可以没有 ==》 try{ }finally{ })

特点:写在finally代码块中代码,一定会被执行到
注意:①执行了 return    也会执行finally
           ②但 执行 System.exit(0)   就不会再执行finally了!!!

ex1: (此时 Integer in = new Integer("1");  不会出现异常的情况下)

ex2: (此时 Integer in = new Integer("A1");  出现异常的情况下)

ex3:  多个catch

ex4 :1个catch

ex5: return不影响finally{ }代码块中代码的执行

ex6 :    执行 System.exit(0)   ==》 便不会再执行finally{ }代码块中代码

————————————————
版权声明:本文为CSDN博主「郑清」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38225558/article/details/82054100

有关java中的try{}catch(){}的讲解的更多相关文章

  1. 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析

    这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...

  2. [转载]java中try 与catch的使用

    留着以后看 原文地址:与catch的使用">java中try 与catch的使用作者:碌碌如玉 try{ //代码区 }catch(Exception e){ //异常处理 } 代码区 ...

  3. Java 中 try、catch、finally 语句块的执行顺序

    假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1.正常执行顺序:try → catch → finally → 其他代码 2.try,catch和finally ...

  4. java中try 与catch的使用

    (2011-10-08 17:08:43) 转载▼ 标签: 杂谈 分类: Java try{//代码区}catch(Exception e){//异常处理}代码区如果有错误,就会返回所写异常的处理. ...

  5. 在java中的Try Catch块-------------异常处理(2)

    1. Try块是什么? Try块是一块可能产生异常的代码块,一个Try块可能跟着Catch块或者Finally块,或者两者. Try块的语义: try{ //statements that may c ...

  6. 你真的理解Java中的try/catch/finally吗?

    看几个例子,回顾一下执行顺序 例子1 无异常,finally中的return会导致提前返回 public static String test() {    try {        System.o ...

  7. 关于java中getClass()和getSuperClass()的讲解

    为了讲解这个问题,我们先来看一下下面的代码: package com.yonyou.test; import java.util.Date; class Test extends Date{ priv ...

  8. Java中的try catch finaly先后调用顺序

    自我总结,有什么不足或好的方案,希望大家给予纠正,感激不尽! 目的:try catch finaly的顺序执行,和大家复习一遍. 方法:debug来确认执行顺序.(需要引入junit包) 废话不多说, ...

  9. Java 中的 try catch 影响性能吗?

    前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但 ...

随机推荐

  1. 通过redash query results 数据源实现跨数据库的查询

    redash 提供了一个简单的 query results 可以帮助我们进行跨数据源的查询处理 底层数据的存储是基于sqlite的,期望后期有调整(毕竟处理能力有限),同时 query results ...

  2. comlink 是来自google chrome 团队的简化webwokers 开发的类库

    comlink 可以帮助我们简单webworkers 的开发,同时很小(1.1kb),具体使用我们可以看下面 一张图  说明 comlink 使用起来也比较方便,官方也提供了完整的api 文档 参考资 ...

  3. 使用git_stats 统计分析git 仓库代码&& 集成webhook

      前几天写过一个使用gitstats 统计分析代码的,但是那个因为开发的问题,对于直接和容器集成是有问题的,统计需要进入容器执行 命令,对于自动构建的还不是很方便,所以使用了git_stats 项目 ...

  4. 【后缀数组】【LuoguP4248】 [AHOI2013]差异

    题目链接 题目描述 给定一个长度为 n 的字符串 S,令 Ti 表示它从第 i 个字符开始的后缀.求 \(\sum_{1\le i <j\le n}len(T_i)+len(T_j)-2*lcp ...

  5. php保存canvas导出的base64图片

    代码如下: <?php $img='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABxCAYAAABoUdWRAAAAAXNSR0IAr ...

  6. python3中Requests将verify设置为False后,取消警告的方式

    import requests resp = requests.get('https://www.***.com', verify=False) 调用成功但是会有如下警告信息: InsecureReq ...

  7. sprintf格式化字符串漏洞(转)

    深入解析sprintf格式化字符串漏洞 特征: 如何利用: 可以看到, php源码中只对15种类型做了匹配, 其他字符类型都直接break了,php未做任何处理,直接跳过,所以导致了这个问题: 没做字 ...

  8. 第07组 Alpha冲刺(5/6)

    队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:依然在完善网页编辑器的后端. 展示GitHub当日代码/文档签入记录:(组内共用,已询 ...

  9. Python推荐一整套开发工具

    原文:https://sourcery.ai/blog/python-best-practices/ 在开始一个新的Python项目时,很容易不做规划直接进入编码环节.花费少量时间,用最好的工具设置项 ...

  10. 本地git工作流

    一:add后的回退代码 1.在原有已经的基础上,又新增加了一个小需求 经过修改,添加到暂存区. 这个时候,会存在modified文件: 2.然后,又说需求不需要存在了 可以进行丢弃 在reset后,需 ...