【java】利用异常机制,往前台写错误信息
有时候,程序可能会报异常,而这些异常,通常需要提示前台操作人员怎么去处理,才能完成业务。
此时,我们只需要在业务层,自己抛出一个异常,自己捕捉之后,调用下类,即可输出到前台。
1.servlet里面可以这样写
try { .... } catch (Exception e) { e.printStackTrace(); this.showWrongMessage(resp, e.getMessage());//调用此方法,输出一个弹出窗口到前台页面,传递message // logger.info(e.getMessage()); }
2.html显示页面出错警告
/* * html显示页面出错警告 * * @param response * @param message */ public void showWrongMessage(HttpServletResponse response, String message) { response.setContentType("text/html;charset=GBK"); StringBuffer buf = new StringBuffer(); buf.append(""); buf.append("<html>"); buf.append("<head>"); buf.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=GBK\">"); buf.append("<title>提示信息</title>"); buf.append("</head>"); buf.append("<body>"); buf.append(" <script language=\"javascript\">"); buf.append("var x = 640;"); buf.append("var y = 480;"); buf.append("var xx = (window.screen.width - x) / 2;"); buf.append("var yy = (window.screen.height - y) / 2;"); buf.append("window.close();"); buf.append("var windowFeatures = \"width=\" + x + \",height=\" + y + \",status,scrollbars=yes,resizable,left=\" + xx + \",top=\" + yy + \"screenX=\" + xx + \",screenY=\" + yy; "); buf.append("var win=window.open('','',windowFeatures);"); buf.append("win.document.write('<span class=\"bnew\">提示信息 :</span>');"); buf.append("win.document.write('<center><p><pre style=\"color:red;border=2px\">sorry " + message + "</pe> </p></center>');"); buf.append(" </script>"); buf.append("</body>"); /* buf.append("<body bgcolor=\"white\">"); buf.append("<span class=\"bnew\">提示信息 :</span>"); buf.append("<center><p><pre style='color:red;border=2px'>sorry " + message + "</pe> </p></center>"); buf.append("</body>"); */ buf.append("</html>"); byte[] bs = buf.toString().getBytes(); ServletOutputStream ouputStream = null; try { ouputStream = response.getOutputStream(); ouputStream.write(bs, 0, bs.length); ouputStream.flush(); } catch (IOException e1) { e1.printStackTrace(); } finally { if (ouputStream != null) { try { ouputStream.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }