异常的处理try-catch
Java异常处理
Java采用的异常处理机制,是将异常处理的程序代码集中在一起, 与正常的程序代码分开,使得程序简洁、优雅,并易于维护。
* 异常的处理: 抓抛模型
*
*
* 过程一 : 抛, 程序在执行过程中,一旦出现异常,就会在异常处生成一个对应异常类的异常对象,
* 并将此对象抛出,
* 一旦抛出对象后,其后代码就不会执行了
*
* 过程二: 抓 可以理解为异常的处理方式
* a: try-catch-finally
* b: throws
try-catch-finally 处理
* try{
*
* 可能出现异常的代码
*
* }catch(异常类型1,变量名1){
* //处理异常的方法1
* }catch(异常类型2, 变量2){
* //处理方式2
* }
* ......
*
* finally{
* //一定会执行的代码
* }
*
*/
try{
...... //可能产生异常的代码 }
catch( ExceptionName1 e ){
...... //当产生ExceptionName1型异常时的处置措施 }
catch( ExceptionName2 e ){
...... //当产生ExceptionName2型异常时的处置措施
}
[ finally{
...... //无论是否发生异常,都无条件执行的语句
}]
// finally 是可选择的 不是必须de
// try把可能出现异常的代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常处理的对象,根据此对象的类型,去catch中匹配
// 一旦try中的异常对象匹配到某一个catch时就进入这个catch中进行异常处理,一旦处理完成就跳出当前的tray-catch结构(在没有写finally)继续执行后面的结构
// catch没有字父类关系,声明再上和下无所谓
// 常用的异常处理发方式: String : getMessage() e.printStackTrace()
public static void main(String[] args) {
try {
String abc = "abc";
Integer num = Integer.parseInt(abc);
}catch (NumberFormatException e){
e.printStackTrace();
System.out.println("碰到了异常别着急");
}
System.out.println("hello");
}
finally: 上面的无论是否获取到,都会执行下面的finally信息
finally声明的是一定会被执行的代码, 不论catch是否执行了都会去执行finally的信息
try{
String abc = "abc";
int num = Integer.parseInt(abc);
System.out.println(num);
}catch (NumberFormatException e){ //正常错误获取
System.out.println("This is num error");
}catch (FactoryConfigurationError e){
System.out.println(e);
}finally {
System.out.println("上面的获取到了");
}
}
输出:
// This is num error
//上面的获取到了
catch未获取到错误信息 finally也输出
public static void main(String[] args) {
try{
String abc = "abc";
int num = Integer.parseInt(abc);
System.out.println(num);
}catch (IllegalAccessError e){
System.out.println("This is num error");
}catch (FactoryConfigurationError e){
System.out.println(e);
}finally {
System.out.println("上面的错误未获取到");
}
}
//上面的错误未获取到
异常处理方式二:
throws+异常类型
public static void main(String[] args) {
try{
method2();
}catch(NumberFormatException e){
System.out.println("碰到了问题");
}
}
public static void method2() throws NumberFormatException{
method1();
System.out.println("pengdaole ");
}
public static void method1(){
String abc = "abc";
int num = Integer.parseInt(abc);
}
体会:
try catch 是真正的处理异常,而throws只是把异常抛给了方法的调用者,并没有将异常处理掉
.
异常的处理try-catch的更多相关文章
- 处理异常的 try,catch
try catch finally 1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行.catch有几种写法: catch 这将捕获任何发生的异常. cat ...
- Java异常之try,catch,finally,throw,throws
Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...
- 前端魔法堂——异常不仅仅是try/catch
前言 编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外.对于业务用例的例外我们别无它法,必须要求实施人员与 ...
- Java解决异常之try、catch、finally、throw、throws&log4j记录日志步骤
知识点一.多重catch引发多种类型的异常排列catch 语句的顺序:先子类后父类 发生异常时按顺序逐个匹配只执行第一个与异常类型匹配的catch语句二.异常分类异常分为运行时异常和检测异常运行时异常 ...
- (后端)异常不仅仅是try/catch
前言 编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外.对于业务用例的例外我们别无它法,必须要求实施人员与 ...
- java:异常机制(try,catch,finally,throw,throws,自定义异常)
* String类中的格式化字符串的方法: * public static String format(String format, Object... args):使用指定的格式字符串和参数返回一个 ...
- 异常依然执行{try..catch语句块..}的后续代码
测试异常依然执行{try..catch语句块..}的后续代码: private static Integer testThrows() throws Exception{ Integer result ...
- Java中有多个异常, 如何确定捕获顺序(多个catch),先从上到下执行,判断异常的大小,如果包含捕到异常,就进入这个catch,后面的就不再执行
Java中异常的捕获顺序(多个catch)( Java代码 import java.io.IOException; public class ExceptionTryCatchTest { publi ...
- 【Java】异常 —— throw, throws, try catch 相关内容
嗯……面试考到了这个,又是一个如无意外 那么接下来就总结吧 一.什么是异常 程序运行过程中发生的异常事件. RuntimeException通常是因为编程员因为疏忽没有检查而引起的错误. 二.Exce ...
- java-异常-异常捕捉及多catch情况(try-catch)
1 package p1.exception; 2 3 4 /* 5 * 异常处理的捕捉形式: 6 * 这是可以对异常进行针对性处理的方式. 7 * 8 * 具体格式是: 9 * try{ 10 * ...
随机推荐
- IDF-CTF-简单的js加密 writeup
题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=43 知识点:js语法 这里这里→ http://c ...
- 《JAVA设计模式》之模板模式(Template)
在阎宏博士的<JAVA与模式>一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式 ...
- golang的数据类型之整型类型
数据类型: 整数 : int, int32, int64, uint, uint32, uint64 字符串 : string 布尔:bool 浮点:float32 float64 uint 表示无符 ...
- jquery 操作select,checkbox,radio (整理)
在工作中经经常使用到select,checkbox,radio,今天有点空暇就整理一下,免得以后用的时候还要又一次找. 操作select下拉框 -- 获取值或选中项: 1, $("#sele ...
- MIT 6.824学习笔记1 MapReduce
本节内容:Lect 1 MapReduce框架的执行过程: master分发任务,把map任务和reduce任务分发下去 map worker读取输入,进行map计算写入本地临时文件 map任务完成通 ...
- Panabit的各种配置文件
Panabit的各种配置文件 1.启动配置文件路径:/etc/rc.local作用:这个文件里的内容是BSD启动后会自动执行的命令默认配置如下:fsck -y -t ufs /dev/ad0s2a & ...
- springboot中使用RabbitMq
转载:http://www.ityouknow.com/springboot/2016/11/30/spring-boot-rabbitMQ.html RabbitMQ 即一个消息队列,主要是用来实现 ...
- linux中设置虚拟域名
一.打开tomcat安装目录下conf/server.xml这个文件在server.xml文档中找到 </Engine></Service> 接着添加上面添加以下内容(暂时先说 ...
- Center os6.5 mysql
1 # yum -y install mysql-server mysql mysql-dev 2 启动mysql # service mysqld start 3 为root用户配置一个密码 ...
- CF240E Road Repairs
最小树形图+输出方案 输出方案的话记录一下哪些边 然后记得最后拆环要倒着拆就行了