异常-笔记-01

一.使用try-catch捕获单个异常数据库

若是异常出现的话,会当即终止程序,咱们得处理异常:网络

1) :该方法不处理,而是声明抛出,由该方法的调用者来处理,(throws)框架

2) :在方法中使用try-catch的语句块来处理异常-jvm

使用try-catch捕获单个异常: ide

语法以下:spa

try{设计

编写可能会出现异常的代码调试

}catch(异常类型 e){日志

处理异常的代码对象

//记录日志/打印平常信息,继续抛出异常

}

注意:catch 和try都不能单独使用

 

 

二.获取和查看异常信息

1) :String getMessage(): 获取异常的描述信息,缘由

2) String toString():获取异常的类型和异常描述的信息(通常不用)

3) :void printStackTrace():打印异常的跟踪栈信息并输出到控制台.不须要使用System

 

 

包含了异常的类型.异常的缘由,还包括了异常出现的位置,在开发调试阶段,都得使用printStackTrace

如今在catch语句块中,必须写: e.printStackTrace(); 目的:查看异常的具体信息,方便调试和修改.

 

三.使用try-catch捕获多个异常

try{

编写可能会出现异常的代码

}catch(异常类型A  e){当try中出现A类型异常,就用该catch来捕获

处理异常的代码1

//记录日志/打印平常信息,继续抛出异常

}catch(异常类型B  e){当try中出现B类型异常,就用该catch来捕获

处理异常的代码2

//记录日志/打印平常信息,继续抛出异常

}

注意:代码在一瞬间只能出现一种类型的异常,只须要一个catch捕获,不可能同时出现多个异常. 

Exception放在最后

 

 

四.保证关闭资源的finally代码块

finally语句块表示最终都会执行的代码, 不管有没有异常.

何时的代码必须最终执行

当咱们在try语句块中打开了一些物理资源(磁盘文件/网络链接/数据库链接等).咱们都得在使用完以后,最终关闭打开的资源,

finally的语法

1) : try........finally: 此时没有catch来捕获异常, 由于此时根据应用场景,咱们会抛出异常, 本身不处理

2) : try.....catch .........finally: 自身须要处理异常, 最终还得关闭资源.

注意:finally不能单独使用.

 

当只有在try或catch中调用退出jvm的相关方法, 此时finally才不会执行,

不然finally永远会执行

System.exit(0)://退出jvm

--------------------------------------------------------------------------------------------

必须使用finally才能保证最终必须执行的代码

 

果finally有return语句,永远返回finally中的结果,避免该状况,

 

 六.异常的分类

1) : 编译时期异常,checked异常.在编译时期,就会检查,若是没有处理异常,则编译失败

2) : 运行时期异常,runtime异常,在运行时期, 检查异常,在编译时期, 运行异常不会编译器检测(不报错)

运行异常: 在编译时期, 可处理,可不处理.

如何肯定某一个类是编译异常仍是运行异常

返回错误结果-throw语句

抛出异常:

throw:运用于方法内部,用于给调用者返回一个异常对象,和returm同样,会结束当前方法

throws: 运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(

(抛出异常)

//表示: 在本方法中不处理某种类型的异常, 提醒调用者须要来处理异常

:private static int divide(int num1,int num2) throws Exception

若是每个方法都放弃处理异常,都直接经过throws声明抛出,最后异常会抛到main方法.

若是此时mian方法不处理,继续抛出给jvm,底层的处理机制就是打印异常的跟踪栈信息

runtime异常,默认就是这种处理方式.

 

 

throw语句:

运用于方法内部,抛出一个具体的异常对象,

throw new 异常类(“异常信息”);终止方法.

throw:

通常的,当一个方法出现不正常的状况的时候,咱们不知道该方法应该返回什么,此时就返回一个错误,

在catch语句块中继续向上抛出异常

return是返回一个值,throw是返回一个错误, 返回给该方法的调用者

 

微观上分析和理解框架各个模块的设计细节

宏观上分析和把控框架总体的设计思想

相关文章
相关标签/搜索