询问一下大家的异常处理的策略

J-will 发布于 2011/08/02 08:09
阅读 275
收藏 0

大家对数据库操作类的异常都是如何处理,是不是一直抛出,然后到控制器层再进行处理,比如重定向到错误页面等等。

但是如何区分异常是从哪里抛出的?比如说获取连接会抛出SQLEXCEPTION  ,CRUD操作,也会抛出SQLEXCEPTION,但是我希望在CRUD操作发生异常的时候 ROLLBACK ,我应该怎么对这种相同的异常做一些标记,好判断属于相同的异常类的异常对象具体是从我的哪些操作抛出,好重定向到指定的错误页面。

加载中
0
红薯
红薯

按理说,所有的数据库异常都应该是严重的异常。

这些异常不应该被隐藏起来,管理员需要第一时间知道。

0
笨蛋EGG
笨蛋EGG
应该有错误码的啊,严谨一些的可以判断一下错误码,一些已知的具体错误,可以在系统能力范围内转到错误信息页去,并指导应该如无处理,未知的就“联系管理员”咯,再严谨一些的,要详细的记录好错误信息。
0
Z
ZYud
每个方法只做一件事,这样你调用的时候就知道异常从何而来.
0
J-will
J-will

引用来自“红薯”的答案

按理说,所有的数据库异常都应该是严重的异常。

这些异常不应该不隐藏起来,管理员需要第一时间知道。

不应该不隐藏起来,也就是说应该隐藏起来,红薯大哥是不是指数据库异常应该在底层就catch好,然后马上处理,然后那个方法就不声明抛出异常。在上层的类看来,这个类的方法都是假定正确执行的。

至于正真的异常可以在控制台打印堆栈跟踪消息。

是这个意思吗?     

红薯
红薯
笔误,是不应该被隐藏起来
红薯
红薯
笔误
0
J-will
J-will

引用来自“ZYud”的答案

每个方法只做一件事,这样你调用的时候就知道异常从何而来.
可是有时候一个方法要封装好几个其他的方法,不可避免地会导致可能有相同类型的异常
0
J-will
J-will

引用来自“J-will”的答案

引用来自“红薯”的答案

按理说,所有的数据库异常都应该是严重的异常。

这些异常不应该不隐藏起来,管理员需要第一时间知道。

不应该不隐藏起来,也就是说应该隐藏起来,红薯大哥是不是指数据库异常应该在底层就catch好,然后马上处理,然后那个方法就不声明抛出异常。在上层的类看来,这个类的方法都是假定正确执行的。

至于正真的异常可以在控制台打印堆栈跟踪消息。

是这个意思吗?     

多谢啦!
0
J-will
J-will

引用来自“笨蛋EGG”的答案

应该有错误码的啊,严谨一些的可以判断一下错误码,一些已知的具体错误,可以在系统能力范围内转到错误信息页去,并指导应该如无处理,未知的就“联系管理员”咯,再严谨一些的,要详细的记录好错误信息。
多谢!不过在JAVA里什么算是错误码呢,e.getMessage()吗?
笨蛋EGG
笨蛋EGG
不好意思,java不是很懂,我在C#是这样做的而已。
0
Z
ZYud

引用来自“J-will”的答案

引用来自“ZYud”的答案

每个方法只做一件事,这样你调用的时候就知道异常从何而来.
可是有时候一个方法要封装好几个其他的方法,不可避免地会导致可能有相同类型的异常
如果你知道怎么处理就处理它,觉得应该上层处理就抛出,其它的就记录日志吧.要管理员看,反馈给你.
返回顶部
顶部