上一篇我们讲了java异常解读及通过业务逻辑解决异常的方式,接来下我们在再看看java异常处理方式 try-catch-finally
1:try-catch
结构: * 结构: * try{ * 可能出现异常de代码段 * }catch(可能出现的异常){ * 解决办法 * } |
顺序:
* try-catch的执行顺序: * 1、执行try块中的代码块 如果出现异常 * 2、通过出现的异常去匹配 catch中声明的异常类型 * 3、如果匹配成功 执行catch中的代码块 如果匹配失败 jvm处理当前异常信息 (终止程序 输出异常信息) * 4、继续执行剩下的代码 |
例子:
|
注意事项
PS:只能处理一种异常信息。 |
2:try-多重catch
结构: * 结构: * try{ * 可能出现异常的代码 * }catch(异常类型1 e1){ * 解决方案1 * }catch(异常类型2 e2){ * 解决方案2 * }catch(异常类型3 e3){ * 解决方案3 * }。。。。{ * } |
顺序
* 执行顺序: * 1、执行try块 如果出现异常 * 2、以此匹配多重catch中声明的异常 * 3、如果匹配成功 执行当前匹配成功的catch块 try-catch块执行完毕 继续执行下面的代码 * 4、如果匹配失败 交由jvm处理 程序终止 输出异常信息 * 5、一般情况下我们都会在最后一个catch中加入Exception 获取可能没有捕获的异常信息 |
例子
|
注意事项:
PS:
* e.getMessage() -->获取异常的原因藐视 * e.printStackTrace() -->打印异常的出现行数以及异常的全限定名* e.toString --> 异常的全限定名 |
3:try-多重catch-finally
结构: * 结构: * try{ * 可能出现异常的代码 * }catch(异常类型1 e1){ * 解决方案1 * }catch(异常类型2 e2){ * 解决方案2 * }catch(异常类型3 e3){ * 解决方案3 * }。。。。{ * }finally{ * 代码块 * } |
顺序:
* 执行顺序: * 1、执行try块 如果出现异常 * 2、以此匹配多重catch中声明的异常 * 3、如果匹配成功 执行当前匹配成功的catch块 执行finally代码块 try-catch-finally块执行完毕 继续执行下面的代码 * 4、如果匹配失败 交由jvm处理 程序终止 输出异常信息 也会执行finally代码块 * 5、一般情况下我们都会在最后一个catch中加入Exception 获取可能没有捕获的异常信息 * 6、一般情况下通过finally去关闭连接资源 |
例子:
|
注意事项:
PS: |
|
4:throws 声明一个异常
语法格式: * 注意格式: * 方法() throws 异常类型1,异常类型2。。。{} |
注意事项:
|
案例:
|
5:throw抛出异常信息
语法格式: throw new 异常类型(); PS:抛出异常是在方法内部编写的 |
注意事项:
|
案例:
|
6:自定义异常:
自定义异常的步骤: * 如何自定义异常: * 1、创建一个类 让当前类要么继承Exception 要么继承RuntimeException * 2、编写当前类的构造器 : * a、一定要写空构造器 * b、一定要写一个带异常原因描述的构造器 (带一个String参数的构造器) * 3、在构造器内部通过super()调用父类的构造器即可 |
自定义异常如何获取异常信息: 类图:
实例:
|
测试类:
|
PS:当int作为属性时它是具有默认值,默认值是0.而这个值有可能导致程序运行期间出现不稳定因素
更多java异常及其处理机制,请查看上海尚学堂以下文章:《 java异常及其处理机制》;
《 java异常解读及通过业务逻辑解决异常的方式》
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31494694/viewspace-2147562/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31494694/viewspace-2147562/