版权声明:本文为博主原创文章,遵循 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. edgedb 开发环境运行

    以下是一篇来自官方的edgedb 开发环境搭建说明,实际上我以前自己也摸索过一个,基本方法一样,一些是官方的做一个 简单的记录 预备工具 GNU make version 3.80 or newer; ...

  2. [RN] React Native 实现 FlatList上拉加载

     FlatList可以利用官方组件 RefreshControl实现下拉刷新功能,但官方没有提供相应的上拉加载的组件,因此在RN中实现上拉加载比下拉刷新要复杂一点. 不过我们仍可以通过FlatList ...

  3. PHP-FPM config 文件生产环境

    ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [global] pid = run/php-fpm.pid error_log = ...

  4. 一些常用的文本文件格式(TXT,JSON,CSV)以及如何从这些文件中读取和写入数据

    TXT文件: txt是微软在操作系统上附带的一种文本格式,文件以.txt为后缀. 从txt文件中读取数据: with open ('xxx.txt') as file: data=file.readl ...

  5. GoCN每日新闻(2019-10-22)

    GoCN每日新闻(2019-10-22) GoCN每日新闻(2019-10-22) 1. Go 集成测试:https://www.ardanlabs.com/blog/2019/10/integrat ...

  6. 把pdf的内容转化为txt文件

    import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; import j ...

  7. [C++] inline内联函数使用方法

    C++支持内联函数,目的是为了提高函数的执行效率,类似于C语言中的宏定义 内联函数在调用时将它在程序中的每个调用点展开,不用额外分配栈空间 内联函数的定义在一个源文件中出现一次,但在多个源文件中可以同 ...

  8. Java8新特性 (一)Lambda

    目录 一.Lambda介绍 二.Lambda用法实例 三.Lambda变量作用域 前言: 这两天彻底的复习了一遍Java8的各种新特性,趁着热乎劲,把知识点整理成博客的形式保存一下. 一.Lambda ...

  9. 数据库sql优化总结之5--数据库SQL优化大总结

    数据库SQL优化大总结 小编最近几天一直未出新技术点,是因为小编在忙着总结整理数据库的一些优化方案,特此奉上,优化总结较多,建议分段去消化,一口吃不成pang(胖)纸 一.百万级数据库优化方案 1.对 ...

  10. PostgreSQL中的Object Identifier(oid)数据类型

    PostgreSQL在内部使用对象标识符(OID)作为各种系统表的主键.OID不会添加到用户创建的表中,除非在创建表时指定了WITH OIDS,或者启用了default_with_oids配置变量.类 ...