以下皆来自转载总结,用作个人总结学习
什么时候需要用到try-catch?
代码执行预料不到的情况,或出错的可能性很大时,使用try-catch语句。
1、构造一个文件输入流,(上传文件时,线上环境的内存情况不确定)出错的可能性很大。
2、文件上传写入,数据库事务的提交,还有摄像头和打印机的使用
使用数据库事务的时候使用try-catch,如果事务执行成功就提交事务,如果事务执行失败就由catch提示错误并回滚事务。还有就是在使用curl方式访问其他网络地址的时候会用到,如果网络访问出错或者网络访问超时就在catch中抛出错误。还有就是之前写winfrom软件的时候调用摄像头和打印机,会使用try-catch。
3、程序调用其他人写的程序接口的时候,不敢保证别人的接口返回的都是约定好的返回值。
所以如果接口返回约定好的返回值,那么try中的程序正常执行,如果意料之外catch抛出错误。
可以通过下面这一段代码来加深一下理解:
public class TryCatchStu {
/*try catch:自己处理异常
*try{
* 可能出现异常的代码
*}catch(异常类名A e){
* 如果出现了异常类A类型的异常,那么执行该代码
*}...(catch可以有多个)
*finally{
* 最终肯定必须要执行的代码(例如释放资源的代码)
*}
*代码执行的顺序:
*1.try内的代码从出现异常的那一行开始,中断执行
*2.执行对应的catch块内的代码
*3.继续执行try catch 结构之后的代码
*注意点:
*1.如果catch内的异常类存在子父类的关系,那么子类应该在前,父类在后
*2.如果finally中有return语句,那么最后返回的结果肯定以finally中的返回值为准
*3.如果finally语句中有return,那么没有被处理的异常将会被吞掉
*重写的注意点:
*1.儿子不能比父亲的本事大
*2.儿子要比父亲开放
*3.儿子不能比父亲惹更大的麻烦(子类的异常的类型不能是父类的异常的父类型)
*异常类Api:
*1.getMessage():获取异常描述信息字符串
*2.toString():返回异常类的包路径和类名和异常描述信息字符串
*3.printStackTrace():除了打印toString的信息外,还要打印堆栈信息
*/
原文链接:https://blog.csdn.net/wanghuiwei888/article/details/78818203