项目中的异常处理java,java项目中的自定义异常

在做项目的时候,常常会遇到不同的异常需要捕捉,或是catch,或是throw,但是单靠java中的异常是无法满足业务需求的,像一段代码中会有java.io.FileNotFoundException和java.io.IOException ,如果throw,则父方法只能捕获到java.io.IOException,而业务中可能还需要处理java.io.FileNotFoundException,这时自定义异常是一种办法吧。想请教各位,你们在项目中是如何处理异常的,对异常的处理是如何分级的,应该细分到如何程度。

问题可能稚了些,但请高手们谈谈经验,而不只是“根据项目需要”,谢谢了^_^

------解决方法--------------------------------------------------------

自定义异常一般是分成 系统层面异常 和 应用逻辑方面的 异常

前者是用户无法处理的,给出错误信息就可以了(如数据库连接错误..)

后者是用户可以解决的(如输入有问题)

------解决方法--------------------------------------------------------

要自己定义异常类,建议看看think in java

------解决方法--------------------------------------------------------

一般是自己定义的。根据不同的需要写不同的层次

------解决方法--------------------------------------------------------

系统层面异常 和 应用逻辑方面的

------解决方法--------------------------------------------------------

自己定义个异常类,包含异常信息就够了。

------解决方法--------------------------------------------------------

如果throw,则父方法只能捕获到IOException

为什么?

------解决方法--------------------------------------------------------

java.lang.Object

java.lang.Throwable

java.lang.Exception

java.io.IOException

java.io.FileNotFoundException

try{

...

} catch(FileNotFoundException fe){

...

} catch(IOException ie){

...

} catch(Exception e){

...

}

------解决方法--------------------------------------------------------

class MyException extends Exception{

..........

}

public static void main(){

try{

........

}catch(MyException e){

.......

}

}

===================================================

ps:

附赠一个搞笑版答案:

throw new RuntimeException( "偶的自定义异常 ");

------解决方法--------------------------------------------------------

没有必要分得这么清,你可以自己写一个异常:能够判断出现了哪些常见异常,在被调用方法当中捕获异常,处理之后再重新抛出自定义异常,让调用方法来捕获,这样就解决问题了!

你想要传递多远就有多远!

如果你想要写一个能区分各层的异常,据我个人水平了解:目前还做不到。

------解决方法--------------------------------------------------------

继承一下。

自己写一个异常类。

就搞定了。

------解决方法--------------------------------------------------------

大家地解决方法震得很好啊

------解决方法--------------------------------------------------------

给你看个我写的异常类:

一般是要使自己项目的所有异常继承本项目定义的异常类

public class MyException extends Exception {

/** errorCode */

private String errorCode = null;

/** rootCause */

private Throwable rootCause = null;

/** Log Class */

private Log log = new Log();

/**

* Constructor

*/

public MyException() {

super();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值