追忆~似水年华 2020-06-16 15:18 采纳率: 0%
浏览 192
已采纳

JavaWeb的jsp界面怎么显示Raise_application_error里的错误信息,在Servlet中怎么获取错误代码和内容?

例如:触发器中当不满足某条件时执行Raise_application_error(-20000, '超量');
并在jsp界面中给出错误提示:超量
具体的怎么实现

  • 写回答

1条回答 默认 最新

  • syyyyyyyyyyyyyyh 2020-06-16 21:25
    关注

    自定义异常和Result工具类,如果不满足条件就抛异常,接受到异常就给Result工具类变量赋值,然后传递到jsp页面

    /**
     * 
     * @ClassName: CMSException
     * @Description: 自定义异常
     * @author: dell
     * @date: 
     */
    public class CMSException extends RuntimeException {
    
        /**
         * @fieldName: serialVersionUID
         * @fieldType: long
         * @Description: TODO
         */
        private static final long serialVersionUID = 1L;
    
        private String message;
    
        public CMSException() {
            super();
    
        }
    
        public CMSException(String message) {
            super();
            this.message = message;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
    /**
     * 
     * @ClassName: Result 
     * @Description: 返回统一的结果值
     * @author: charles
     * @date: 
     * @param <T>
     */
    public class CMSResult<T> {
       //返回结果的状态
        private Integer code;
        private String  msg;
        private T data;
        public Integer getCode() {
            return code;
        }
        public void setCode(Integer code) {
            this.code = code;
        }
        public String getMsg() {
            return msg;
        }
        public void setMsg(String msg) {
            this.msg = msg;
        }
        public T getData() {
            return data;
        }
        public void setData(T data) {
            this.data = data;
    
        }
    
            try {
    
                //登录成功 存入session 普通用户
                session.setAttribute("user", u);
                result.setCode(200);
                result.setMsg("恭喜登录成功");
            } catch (CMSException e) {
                result.setCode(300);
                result.setMsg(e.getMessage());
            }catch (Exception e) {
                e.printStackTrace();
                result.setCode(500);
                result.setMsg("系统崩溃,请联系管理员");
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题