如题:
这个项目是可配置数据源地址的,如果连接出现异常就提示错误,但是想要人性化到提示错误原因。
例如 Con密码错误提示密码错误,timeout就是超时,不存在的url也给于相对应的提示。
说说原来大家解决过的思路。.sql 和JTDS classes12.的源码都看了,看找不到思路。
还是把问题复杂化了。hibernate有么?
[b]问题补充:[/b]
也是思考到了捕获catch信息,更具相应的信息完成提示。
但是如何做呢?
[b]问题补充:[/b]
先谢谢大家了。这个应用不是针对外网用户的,需求很牵强。
问题已经解决了,throwable有处理方法。
自定义自己的异常类 extends RunTimeException,在catch中抛出,然后不停的往上抛,在界面层捕获并进行处理
catch 错误信息,然后根据错误信息输出提示内容
一直抛到界面层进行处理
service层捕捉异常并吧异常信息抛到action,action捕捉到之后对异常信息进行构造。把结果返回到页面,最好用ajax.
没有这样做过。
Con密码错误提示密码错误,timeout就是超时,不存在的url也给于相对应的提示。
这样具体的错误不可能显示给用户看,对于开发和维护人员来讲,将异常的信息记到log里就很快能找到原因了。
分类让程序更复杂,用处却不大。
参考hibernate如何屏蔽不同数据库的sql异常就可以了。你这种是带有业务意义的应用场景,所以应该定义好程序中所有错误的异常码和异常类,根据不同数据库再有一套不同实现,不同实现动态注入即可。
不过 王者之剑说的有道理,非业务异常是不适合给最终用户看的,正常用户看不懂,不正常用户看了对你系统有危险 :D
根据catch 错误信息,自定义异常
自定义异常再抛出到前台页面给提示