如何来解决编程异常链呢

有的人在遇到异常链的时候不知道怎么解决,下面一起来看下出现异常链的时候如何解决:

  在设计模式中有一个叫做责任链模式,该模式是将多个对象链接成一条链,客户端的请求沿着这条链传递直到被接收、处理。同样Java异常机制也提供了这样一条链:异常链。

  我们知道每遇到一个异常信息,我们都需要进行try…catch,一个还好,如果出现多个异常呢?分类处理肯定会比较麻烦,那就一个Exception解决所有的异常吧。这样确实是可以,但是这样处理势必会导致后面的维护难度增加。最好的办法就是将这些异常信息封装,然后捕获我们的封装类即可。

  诚然在应用程序中,我们有时候不仅仅只需要封装异常,更需要传递。怎么传递?throws!!binge,正确!!但是如果仅仅只用throws抛出异常,那么你的封装类,怎么办??

  我们有两种方式处理异常,一是throws抛出交给上级处理,二是try…catch做具体处理。但是这个与上面有什么关联呢?try…catch的catch块我们可以不需要做任何处理,仅仅只用throw这个关键字将我们封装异常信息主动抛出来。然后在通过关键字throws继续抛出该方法异常。它的上层也可以做这样的处理,以此类推就会产生一条由异常构成的异常链。

原文地址:https://blog.51cto.com/14512197/2440791

时间: 2024-11-07 13:53:32

如何来解决编程异常链呢的相关文章

程序有异常不知道咋办?来学习Java异常处理知识点和异常链机制

Java异常处理知识点和异常链机制异常处理是程序设计中一个非常重要的方面,毕竟人无完人,不可能永不犯错,程序中有异常是很正常的, Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,下面是我对Java异常知识和异常链的一个总结.一.Java异常的基础知识异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的.有些异常需要做处理,有些则不需要捕获处理,在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免.不可预测的情况则在考虑异常发生时如何处理.J

java异常丢失及异常链

异常丢失的情况: 先定义三个异常: public class ExceptionA extends Exception { public ExceptionA(String str) { super(); } } public class ExceptionB extends ExceptionA { public ExceptionB(String str) { super(str); } } public class ExceptionC extends ExceptionA { publi

Xcode6:解决_NSURLAuthenticationMethodServerTrust异常问题

一.在使用Xcode6进行运行项目时,发现程序直接Crash了,控制台信息如下: dyld: Symbol not found: _NSURLAuthenticationMethodServerTrust Referenced from: /var/mobile/Applications/B60BF229-07AA-452C-BA0B-9128CDCA7E3A/EBOOK.app/EBOOK Expected in: /System/Library/Frameworks/CFNetwork.fr

解决SQLite异常:library routine called out of sequence

在项目开发中,使用SQLite一不小心就会碰到各种DB异常,网上搜了下没有这方面的资料,写出来记录下. 异常信息:android.database.sqlite.SQLiteMisuseException: library routine called out of sequence: , while compiling: ...... 解决这种异常有2个办法:方法一:单例模式使用DB时,函数[方法]上加同步synchronized即可解决. 方法二:工厂模式使用DB也可以解决(或者在线程中ne

解决Eclipse异常关闭后重启报 org.eclipse.swt.SWTException: Invalid thread access 的问题

. . . . . 很久没有写博客了,最近实在是太忙,一直想写点干货,但是一直没静下心来学习. 今天又在加班忙碌之中,结果谁知道越忙碌越出问题.先是 weblogic 没有正常启动,凭经验第一反应就是7001端口被其它程序占用了,然后通过命令查看之后,发现果然是被占用了,占用端口的竟然是Eclipse,查找占用端口的方式请移步至博主的另一篇文章<[windows]查询占用端口的程序——记一次解决webloigc启动失败的过程>. Eclipse之前是不占用7011端口的,这次占用估计可能是启动

Linux C编程如何使用联机帮助来解决编程问题?

1.背景 多次学习C语言一直无法踏入C语言的大门,每次都是在学习C语言中的那些系统调用库函数等望而却只,linux下的系统调用需要我们去记忆一些没有规律的结构体和一些大写的宏定义并且还有一个函数多种形式的例如print fprintf sprintf等等,看起来就很不爽,写起东西来真的很无语.什么都要自己写,写什么都要对返回结果进行出错处理的判断.(C语言菜鸟的一些抱怨勿喷),最近又重新拾起C来学习linux下的C编程.目前主要看linux程序设计(早年买的书),unix/linux编程实践(电

[02] 异常链和自定义异常

1.异常链 1.1 throw 我们之前比喻过,说异常的抛出就像棒球中的投球,其中RuntimeException是发生意外后程序自行抛出的,假如我们想要自己抛出异常,就要使用 throw 关键字. 显式地抛出异常通常写为: throw new xxxException(); 异常抛出后,有两种处理方式: 立即处理,使用 try catch 捕获并处理 稍后处理,丢给方法调用的上层处理,使用 throws 关键字 //try-catch 立即处理 public static void fun()

java 第50节 Java中的异常链

2016-06-30 1 异常链 两个或多个不同的异常出现在同一个程序中,并且会发生嵌套抛出,我们称之为异常链. package com.java1995; /** * 异常链 * @author Administrator * */ public class ExceptionChainTest { public static void main(String[] args) { Calculator c=new Calculator(); try{ c.chufa(1, 0); }catch

配置React Native环境及解决运行异常

一. 安装Homebrew: Homebrew的官网(多语言版本)简单明了地介绍了如何安装和使用这个工具,;并提供了自己的Wiki. brew的安装很简单,使用一条ruby命令即可,Mac系统上已经默认安装了ruby": ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 等待一段时间后会出现     Press RETURN to continue