A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何俊 初级黑马   /  2018-11-22 13:07  /  945 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try…catch自己处理
格式:
    Try {
       // 可能出现异常的代码
}  catch(异常类型 变量名)  {
   // 处理异常的逻辑
}
流程:
    1)当try中代码出现异常, 产生异常对象, 将异常对象和catch括号中的异常变量进行匹配, 如果可以匹配上, 则把对象赋值给异常的变量,catch中代码会执行, 异常则已经处理完毕, try catch后续代码也能正常执行
2)如果不能匹配上,则try…catch捕获异常失败, 此时异常和没处理, 则会抛给方法的调用者


            编译期异常, 只是比运行时异常多一个强制性要求,必须先给出预处理方案, 只要代码正常, 异常对象就不好产生。 类型得匹配



         
多个异常处理方式有三种:
//1 每一个异常一个try  catch处理
//2 多个异常的处理: 一个try, 多个catch
            /*
               执行流程:
                   如果try中的代码产生异常了, 会讲异常信息封装Wie一个异常对象, 跟catch中的异常类型进行匹配, 如果匹配上则会将异常对象赋值给对应的异常变量, 并执行对应的catch大括号中的逻辑, 执行完后则整个try  catch就结束了   没有第一个没有匹配上会有上往下去匹配

                    只会和其中一个catch匹配上
*/
            // 3  还可以: 直接将多个可能出现异常的代码放入一个try中, catch多个异常  父类型

               // 实际开发中: 将异常信息写入错误日志

           注意:
               如果多个catch有子父类关系, 子类的异常类型的catch必须放在父类的前面, 父类型会包含子类型


有时候我们需要某些代码在任意情况下都需要被执行,这个时候, 我们需要用到一个结构
格式:
    Try {
       // 可能出现异常的代码
}  catch(异常类型 变量名)  {
   // 处理异常的逻辑
   return;  // 在方法结束之前, 可以留下遗言   return 可以跳出本方法。  一// 般不这样写
} finally {
   // 任意情况下, 此处代码都会执行
}

       System.exit(0); // 终止JVM运行, 则后续任何代码都不会执行

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马