java中catch ()_有关java中的try{}catch(){}的讲解

版权声明:本文为博主原创文章,遵循 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

【敬畏能量 敬畏自然】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PAT (Advanced Level) Practise:1001. A+B Format

【题目链接】 Calculate a b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Each input file contains one test case. Each case contains a pair of i…

stderr java_如何使用Log4j将stdout和stderr写入/捕获到文件并使用Windows和Tomcat 5.5(Java)?...

我正在使用Windows 2008 R2和Apache Tomcat 5.5,以获取您的信息.STDOUT和STDERR可以通过Apache Tomcat属性自动记录,通过Logging选项卡 – >重定向Stdout和重定向Stderror文本框.但我想通过log4j来控制它.我正在尝试利用ConsoleAppender和TimeAndSizeRollingAppender class来…

动手制作属于你自己的WIN PE3.0

最近想要更新公司的网Ghost系统,所以小研究一下win pe ,在网上看见一个很不错的教程,在这里分享给大家!并非原创,纯属转载!!O(∩_∩)O~天缘的作品,很是佩服这个哥们啊.....一、WINPE…

java 命令行读取_Java:从控制台(console,命令行)读取字符 | 学步园

/*** 从控制台(console,命令行)读取字符:InputStreamReader(System.in)*/import java.io.IOException;import java.io.InputStreamReader;public class Test{public static void main(String[] args) throws IOException{StringBuffer sql null;sql sqlReaderFrom…

vector初始化

对vector对象来说,直接初始化的方式适用于3种情况:1.初始值已知且数量少;2.初始值是另一个vector对象的副本;3.所有元素的初始值都一样。此外还有一种更常见的情况是4.创建一个vector对象时并不清楚实际所需元素的个数&#xff0c…

python图像处理模糊_Python+OpenCV图像处理之模糊操作

模糊操作是图像处理中最简单和常用的操作之一,该使用的操作之一原因就为了给图像预处理时减低噪声,基于数学的卷积操作均值模糊,函数 cv2.blur(image,(5,5)),这是一个平滑图片的函数,它将一个区域内所有点的灰度值的平…

javascript Date类型 学习笔记

1 创建一个新的日期对象,如果不带参数,则对象自动获得当前的日期和时间 var d new Date() 2 如果需要指定特定的日期,则可以通过Date.parse() 或者 Date().UTC(),返回时间戳作为 new Date()的参数 Date.parse() 用法: var time…

python如何访问私有变量_python – 从类访问私有模块变量

我正在尝试理解python范围规则.为此,我尝试从同一模块中的类访问“非常私有”变量bar "bar"_bar "underscore"__bar "double underscore"def foo():print barprint _barprint globals()["__bar"]print __barclass Foo:def __init__…

高斯消元学习

1. 证明XOR满足交换律,结合律,是自身的逆运算。比如说,1^0 1 1^1 0 0^1 1 0^0 01^1^0 0 1^0^1 0.a^b^ab 即一个数异或两次相当于无效 2. 从N个数中选出两个数,使XOR和最大。解法:我们知道两个数字之间的异或…

java经纬度格式_java经纬度格式转换

在数学中,表示角度的度、分、秒分别使用、′、″符号进行表示。160′,1′60″ ,13600″。由上述可知度分秒转换度的计算公式为:(ddmm′ss″) ddmm/60ss/3600如:11330′10.25″ 11330/6010.25/3600 ≈113.502847度分秒…

Android GPS及地磁传感器 API

Android 提供的位置包括经纬度和时间戳,可选地包含高度和方位,高度以WGS84椭球体为参照,方位以真北为参考。 地磁传感器以磁北为北。有2种传感器可提供方位信息:地磁场(Geomagnetic)传感器和方向&#xff0…

e3是合法浮点数吗_下面4个选项中,均是合法浮点数的选项是?

选B。b中的123是整数,不是浮点数,2e4.2的指数是4.2不满足浮点数的规则必须是整数,e5中的e不满足浮点数的规则,所以b中3个数均不是浮点数。a中的160、0.12是正确的,c中的123e4、0.0是正确的,d中的234、1e3是…

winform 菜单激发窗体切换做法

经常会用到类似于下图这样的winform窗体,其中点击各个菜单时于鏊做到内容窗体的切换,今天也记录一直切换的方法 在主窗体放置一个panal,所有的内容窗体均在改panal上呈现,实现以下方法 ///实例化主窗体 private void FrmSetup_Loa…

java 正则表达式 反向_正则表达式中的数量表示符、反向引用、零宽断言、以及java中的用法...

在表示数量时,如果一个正则表达式X,后面没有加表示数量的符号,那就默认出现一次。如果指定需要出现n次,那就用{n},例如a{n},就是匹配a出现n次的。a{n,}表示a出现至少n次的,而这个时候就会默认是贪婪模式&am…

cocos2d-x Lua与OC互相调用

1. Lua 调用OC 先看例子: hello.lua: -- 点击回调函数local function notifymenuCallbackTest()local luaoc require(luaoc)local ok, ret luaoc.callStaticMethod("RemoteRequestRouter", "notifyWatch", {params1 "NOTIFICATION_TO_H…

coldwallet java eth_wallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账

wallet-eth-androidwallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账(bip39、bip32、bip44、web3j)生成钱包地址// 生成钱包地址Wallet wallet WalletManager.generateWalletAddress();// 根据助记词获取地址WalletManager.generateAddress(wallet.getMnemonic());// 通过…

Uva 10004(二分图的判定)

这题其实很简单的说,第一次用邻接表来存图 首先图的储存结构是结构体head数组。。。其实head数组保存的 struct node {int v;int next; }V[200*200]; 假设现在有u节点,v表示的是和他邻接的点,next保存的是v对应的编号,head数组保…

django配置在MySQL_怎么在Django中安装与配置mysql

怎么在Django中安装与配置mysql发布时间:2021-02-26 17:42:11来源:亿速云阅读:57作者:Leah本篇文章为大家展示了怎么在Django中安装与配置mysql,内容简明扼要并且容易理解,绝对能使你眼前一亮,通…

php 返回数组元素函数_php array_values 返回数组的所有值详解及实例

php array_valuesphp array_values 函数用于返回数组中所有的值,注意该函数将为新数组建立数组索引,原来的文字索引将不存在。本文章向大家讲解array_values函数的基本语法及使用实例。array_values 返回数组中所有的值基本语法:array array_…

0909 粗浅的认识编译原理

经过相关网页的浏览,也看到了各大网站中各方牛人的回答,我似乎对编译原理有了自己一点粗浅的认识。首先,编译原理及技术从根本上来讲就是对算法问题进行求解,这个问题十分复杂,更不用说其解决算法。 而本学期开的算法分…