java中怎么把发生的异常打印在web页面上

Python019

java中怎么把发生的异常打印在web页面上,第1张

用try catch语句实现:

try {

         //业务代码

    } catch (Exception e) {

        e.printStackTrace()  //打印异常

        throw new Exception("Write InputStream Error" + e.toString())  //抛给客户端的异常

     }

检查日志文件,你就能看到满屏重复的异常。

因此,异常只能被打印一次。在哪儿打异常最好呢?。

原则就是自定义异常在抛出前打印一下,其他各层对自定义异常不作任何打印。甚至不用Catch.

对于上面WebServiceClient.login,在这打印是对的,还可以加上自己的一些log信息,如log.fatal("cannotlogintheXXXsystem")至于在其他层,就不在需要打印,处理这个异常了。这样的异常处理没有什么技术含量,只是个异常处理原则,如果人人都遵循(看到自定义不处理,抛自定义异常前处理)这个原则,就能避免重复打印异常日志

再考虑如何把友好的异常信息给终端用户呢,所谓友好,不能总是提示“系统错误,请稍后再试”,因为这样能让使用者对系统没有信心。好比领导交给你的任务,你没有完成,你总不能每次都说“这是我的问题,以后改正”吧。对异常进行稍微详细的说明,是必要的。另外,也不能总是把异常的stacktrace原封不动的现实给使用者,如java.io.IOExcepiton:Filecannotbefound.这样会被认为你的程序质量不够高。

可以通过异常指定类型来在Web层解释并转化为友好的异常

。如上列子,可以如下定义MyApplicationExceptoin

如下代码: