• (十)系统异常处理


    当在页面中发送了请求,请求被系统处理时出现错误时,如果没有特别处理在请求过程中出现的异常信息时,那么返回给用户的则是后台的异常信息页面;为避免直接将这报错的页面呈现给用户,可对这报错进行处理。

    分层异常

    在本系统中的后台处理有分3个层,分别是action、service和dao层,每个层次都有可能出现相应错误。

    ① Action层可能出现解析请求参数、返回结果有问题;

    ② Service 层则可能出现请求中要做的业务操作出现问题;出现了问题要根据实际情况判断是否会影响本次操作结果,action中要根据异常信息进行判断然后确定是否操作成功;

    ③ dao层也可能出现在操作数据库时出现错误;而此种错误一般都是致命的会影响操作结果。

    以此;在3个层次中至少要有两种类型的异常信息来标识。

    制定总的系统异常类:

    Action层异常类:

    Service层异常类:

    异常处理

    全局异常映射

    在struts总配置文件(struts.xml)中配置一个包括 全局异常映射和全局结果的package,然后让其它所有的业务模块的struts配置文件(*-struts.xml)继承后便可处理由后台抛出的特定异常并处理。

    在总配置文件struts.xml中:

    在子业务模块中的*-sturts.xml中继承总配置文件中的package:

    在具体的后台处理代码中抛出系统异常:

    如果在action中只抛出了ActionException,那么非此异常出现时,如果在全局异常映射中配置了java.lang.Exception 异常类的映射,同样可以捕获。

    制定返回类型(StrutsResultSupport)

    在有特殊情况时;如果没有异常信息,但是有错误并且有错误信息等内容;此时也需要进行友好的错误处理的话,那么可以借助StrutsResultSupport 返回结果类型来实现特定处理。此种方式先需要继承StrutsResultSupport ,然后可以在子类中获取本次请求的相关信息,再根据相关信息进行结果处理:

     

    在struts.xml总配置文件中定义全局处理类型和全局处理结果:

  • 相关阅读:
    LightOJ--1094-- Farthest Nodes in a Tree(树的直径裸题)
    poj--1383--Labyrinth(树的直径)
    C字符数组和C++字符串
    Miracl库学习
    GBDT学习
    Java编程规范
    关于JS中的数组[]的方法
    焦点离开事件
    Firebug 安装方法
    JAVASE 中的String的字符串
  • 原文地址:https://www.cnblogs.com/Michael2397/p/5934060.html
Copyright © 2020-2023  润新知