如何集中处理异常?

乐哉悠哉 2013-01-24 03:47:47
关于java的异常处理,有一些疑惑,请知道的人不吝赐教,十分感谢。
(1)一个函数throws的异常,如果我自己没有写catch语句,那么异常发生时,异常是怎么被处理的?例如下面代码中,我的函数抛出了异常,但我在其它地方调用该函数时,根本没有再显式抛出,并用catch处理它。
public int update(String type, String...params) throws SQLException{
return executeUpdate(sql);
}

(2)我自定义了一个异常后,可能在很多地方它都会被抛出,这样我就需要在每个它可能被抛出的地方catch并用同样的方法处理它,代码冗余很大,我能不能只抛出,然后在某个地方集中处理这些异常呢?例如,我在许多页面都会检查用户是否在线(只是举个例子,或者这种情况不适合用异常处理),如果不在线,则将其引导到登录界面。那么,我在每个页面都要redirect,能不能检查到不在线时,只抛出一个异常,然后集中在一个类似ActionHandler里处理呢?
...全文
1248 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgyyz 2013-01-24
  • 打赏
  • 举报
回复
引用 8 楼 guankle 的回复:
引用 3 楼 sgyyz 的回复:1.如果throw了没有catch,那么会出现的问题是你的程序在运行时会报错,同时会停止运行,影响到其他地方 2.如果要统一的去处理,那么Spring有一个AOP功能,你可以去拦截一下 java的RuntimeException应该很熟悉吧?是不用显式catch的。我想要的大概就是这种效果,在一个地方抛出异常,然后用类似Excep……
Spring AOP中不是有一种就是异常拦截么。
乐哉悠哉 2013-01-24
  • 打赏
  • 举报
回复
引用 3 楼 sgyyz 的回复:
1.如果throw了没有catch,那么会出现的问题是你的程序在运行时会报错,同时会停止运行,影响到其他地方 2.如果要统一的去处理,那么Spring有一个AOP功能,你可以去拦截一下
java的RuntimeException应该很熟悉吧?是不用显式catch的。我想要的大概就是这种效果,在一个地方抛出异常,然后用类似ExceptionListener的东西(主动)自动捕获并处理这些异常。
乐哉悠哉 2013-01-24
  • 打赏
  • 举报
回复
引用 2 楼 flagiris 的回复:
在调用的入口里catch就可以了吧。。。 程序总是有个入口方法的, 好比加j2se里的main struts中action里的execute方法。。。。
我不是说不知道在哪儿catch,我是想换个地方catch。并且我在写jsp网页的时候,不用main函数的。我的问题是想集中处理。 比如说在write.jsp页面里,我会先检查用户是否已登录,如果没有登录(假设我把这种情况当作异常处理),那么我抛出异常。这时候当然可以在执行检查的语句之后catch这个异常了,然后在这个catch语句块里,我可以将用户重定位到欢迎页面。 但是在另外一个例如delete.jsp页面里,我又要检查用户是否已经登录,如果没登录,我要进行同样的操作。另外可能还会有很多异常,我要一个一个catch并处理。比较麻烦。 如果能够只在这里用throws抛出异常,然后在另一个地方例如一个类ExceptionListener里(主动)自动捕获这些异常,并根据异常种类分类处理就好了,不知道能不能实现。
muzzsz 2013-01-24
  • 打赏
  • 举报
回复
pring的AOP日志异常处理机制,在里面你可以对应的Exception做对应处理
乐哉悠哉 2013-01-24
  • 打赏
  • 举报
回复
引用 1 楼 szx_zsx 的回复:
spring的AOP日志异常处理机制,可以很方便的
spring没用过…我会去查查的。但是我的问题非spring不能解决吗?我主要是想知道java本身在处理异常时候的原理。
sgyyz 2013-01-24
  • 打赏
  • 举报
回复
1.如果throw了没有catch,那么会出现的问题是你的程序在运行时会报错,同时会停止运行,影响到其他地方 2.如果要统一的去处理,那么Spring有一个AOP功能,你可以去拦截一下
菖蒲老先生 2013-01-24
  • 打赏
  • 举报
回复
在调用的入口里catch就可以了吧。。。 程序总是有个入口方法的, 好比加j2se里的main struts中action里的execute方法。。。。
赏金--猎人 2013-01-24
  • 打赏
  • 举报
回复
spring的AOP日志异常处理机制,可以很方便的

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧