当前位置:首页 > Java技术 > JAVA异常处理方法

JAVA异常处理方法

2022年09月17日 09:01:30Java技术8

这篇文章主要介绍了异常处理的简单实现,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

为什么要配置异常处理?

正常的假如我们不配置异常处理,当发生报错的时候会直接跳转报错页面,显然不是很友好,所以我们可以通过配置异常处理器,对异常进行拦截,一旦发生异常我们可以给以提示,让他跳转到自己写的错误页面。

JAVA异常处理方法 _ JavaClub全栈架构师技术笔记

以下为两种异常处理器实现方式:

先自定义一个异常类

/**
 * 自定义异常类
 */
public class SysException extends Exception{
     

    // 存储提示信息的
    private String message;

    public String getMessage() {
     
        return message;
    }

    public void setMessage(String message) {
     
        this.message = message;
    }

    public SysException(String message) {
     
        this.message = message;
    }

}

1、实现HandlerExceptionResolver接口

/**
 * 异常处理器
 */
public class SysExceptionResolver implements HandlerExceptionResolver{
     
    /**
     * 处理异常业务逻辑
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @return
     */
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
     
    	System.out.println(request.getRequestURL());
    	// 获取到异常对象
        SysException e = null;
         
        if(ex instanceof SysException){
     
            e = (SysException)ex;
        }else{
     
            e = new SysException("系统正在维护....");
        }
        // 创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        mv.addObject("errorMsg",e.getMessage());
        mv.addObject("url",request.getRequestURL());
        mv.setViewName("error");
        return mv;
    }

}

2、使用Spring提供的注解实现

/**
 * 异常处理器
 */
@ControllerAdvice
public class SysExceptionResolver{
     
    /**
     * 处理异常业务逻辑
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @return
     */
	@ExceptionHandler(Exception.class)
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
     
    	// 获取到异常对象
        SysException e = null;
         
        if(ex instanceof SysException){
     
            e = (SysException)ex;
        }else{
     
            e = new SysException("系统正在维护....");
        }
        // 创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        mv.addObject("errorMsg",e.getMessage());
        mv.addObject("url",request.getRequestURL());
        mv.setViewName("error");
        return mv;
    }

}

使用方法:

try {
     
	// 模拟异常
    int a = 10/0;
} catch (Exception e) {
     
    // 打印异常信息
    e.printStackTrace();
    // 抛出自定义异常信息
    throw new SysException("查询所有用户出现错误了...");
}

JAVA异常处理方法 _ JavaClub全栈架构师技术笔记

作者:怪 咖@
来源链接:https://blog.csdn.net/weixin_43888891/article/details/108942221

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/42488.html

标签: Exception
分享给朋友:

“JAVA异常处理方法” 的相关文章

Java 异常基础 Exception

Java 异常基础 Exception

Java中的异常。包括异常的基本分类,处理异常的基本方法,自定义异常的方法和常见的一种有关异常的笔试面试题。 Java中的异常 Exception   java.lang.Exception类是Java中所有异常的直接或间接父类。即Exception类是所有异常...

[biomaRt] Query ERROR: caught BioMart::Exception::Usage: Attributes from multiple attribute pages are not allowed

[biomaRt] Query ERROR: caught BioMart::Exception::Usage: Attributes from multiple attribute pages are not allowed

正文 Query ERROR: caught BioMart::Exception::Usage: Attributes from multiple attribute pages are not allowed 就如报错所说, 来源于多个attribute pages...

error与exception的区别

Error(错误) 是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建...

Exception details are logged in Window > Show View > Error Log

Exception details are logged in Window > Show View > Error Log

今天练习布局,发现使用了EditText之后,屏幕一片灰色,并且报错: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)VException details are logged in W...

Android 经验:TimeoutException 问题分析与解决

问题概述 在我们项目开发中,在Crash收集平台可能会经常遇到TimeoutException相关的Crash,通常在OPPO的Android 5.0 - 6.0的手机会复现,输出的堆栈日志大概有下面几种: java.util.regex.Pattern.finali...

AndoridStudio--Error:FAILURE: Build failed with an exception.

相信用过Android Studio开发的朋友都知道,Andorid Studio有时候在运行的时候突然出现如下信息: Error:FAILURE: Build failed with an exception. * What went wrong: Execut...

android studio 的FAILURE: Build failed with an exception解决办法

android studio 的FAILURE: Build failed with an exception解决办法

关于导入项目、或者从远程pull下来的项目出现”FAILURE: Build failed with an exception”的解决方法: 如果项目列表显示错误可以考虑用以下方式 1、检查目录列表是否有以下文件,如没有请从其...

error和exception的不同与相同

error和exception的不同与相同

Exception和Error的区别 两者的“异”&各自的概念: 1.error:error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。(这个时候运行的服务极有可能会down掉)--不可控,比较难捕获,偏底...

JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z

JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, s...

异常处理之[Error: com.android.ide.common.process.ProcessException]

异常处理之[Error: com.android.ide.common.process.ProcessException]

昨天开发过程中,build时出现异常,错误消息如下: Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: Er...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。