精华内容
下载资源
问答
  • 自定义异常类

    2019-02-24 20:07:48
    自定义异常类可以分为三步: 1.创建一个类,比如我要创建一个关于年龄的异常类,叫做AgeException. 2.让自己创建的类继承自一个异常类,如果继承自编译时异常类,那么自定义的异常类就是编译时异常类;如果继承自...

    自定义异常类可以分为三步:
    1.创建一个类,比如我要创建一个关于年龄的异常类,叫做AgeException.
    2.让自己创建的类继承自一个异常类,如果继承自编译时异常类,那么自定义的异常类就是编译时异常类;如果继承自运行时异常,那么自定义异常类就是运行时异常类。
    比如让AgeException继承自Exception类,那么AgeException就是编译时异常类。
    3.自定义异常类中要定义一个构造方法,该构造方法具有一个String类型的形参,并且该方法用super()调用父类的具有一个String类型参数的构造方法

    public class AgeException extends Exception{//自定义一个编译时异常类
    
    	public AgeException(String message) {
    		super(message);
    	}
    }
    
    
    
    import java.util.Scanner;
    
    public class TestForAgeException {
    
    	public static void main(String[] args) throws AgeException {
    		Scanner inScanner = new Scanner(System.in);
    		int age = inScanner.nextInt();
    		if(age>200) {
    			throw new AgeException("输入年龄不合理");
    		}
    	}
    }
    
    

    注意,如果自定义了一个编译时异常类,那么得使用throws抛出或者try catch处理

    展开全文
  • 工程师培训资料标题Java培训系列课程-自定义异常类精品培训培训人xx本章学习目标了解异常的产生原理掌握异常处理语句的基本格式掌握throwthrows关键字的作用可以自定义异常了解Exception与RuntimeException的区别...
  • java自定义异常类

    万次阅读 多人点赞 2018-08-05 20:44:16
    简单介绍一下java中自定义异常类的使用 背景:这里我简单模拟登陆操作,检测到密码不正确则抛出异常 自定义异常类的使用步骤如下: 1、自定义异常类继承Exception类 /** * 自定义异常类 */ public class ...

    简单介绍一下java中自定义异常类的使用
    背景:这里我简单模拟登陆操作,检测到密码不正确则抛出异常

    自定义异常类的使用步骤如下:
    1、自定义异常类继承Exception类

    /**
     * 自定义异常类
     */
    public class MyException extends Exception {
        //异常信息
        private String message;
    
        //构造函数
        public MyException(String message){
            super(message);
            this.message = message;
        }
    
        //获取异常信息,由于构造函数调用了super(message),不用重写此方法
        //public String getMessage(){
        //    return message;
        //}
    }
    

    2、在要抛出异常的函数使用throws关键字

    /**
     * 在需要抛出异常的地方使用异常类
     */
    public class UseMyException {
        private String name;
        private String password;
    
        public UseMyException(String name,String password){
            this.name = name;
            this.password = password;
        }
    
        public void throwException(String password) throws MyException{
            if (!this.password.equals(password)){
                throw new MyException("密码不正确!");
            }
        }
    }
    

    3、测试,使用try-catch处理异常

    /**
     * 测试异常
     */
    public class TestException {
    
        @org.junit.Test
        public void test(){
            UseMyException ex = new UseMyException("admin","123");
            try{
                ex.throwException("1234");
            }catch (MyException me){
                System.out.println("MyException:"+me.getMessage());
            }
        }
    }

    自定义异常类的使用其实也比较简单,有什么问题欢迎一起讨论~

    展开全文
  • 在应用程序中有时候要我们抛出自定义的异常,所以需要自定义异常类,并且需要创建一个自定义的全局异常处理类来处理异常(返回json数据或者返回指定的网页) 1.MyException.java(自定义异常类) public class ...

    在应用程序中有时候要我们抛出自定义的异常,所以需要自定义异常类,并且需要创建一个自定义的全局异常处理类来处理异常(返回json数据或者返回指定的网页)

    1.MyException.java(自定义异常类)
    public class MyException extends RuntimeException {
    	//异常错误码
        private int code;
        //异常信息
        private String msg;
    	//异常构造方法 在使用时方便传入错误码和信息
    	public MyException(int code, String msg) {
            this.code = code;
            this.msg = msg;
        }
        public int getCode() {
            return code;
        }
    
        public void setCode(int code) {
            this.code = code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    }
    
    2.GlobalExceptionHandle.java(自定义异常处理类)
    
    @RestControllerAdvice
    public class GlobalExceptionHandle {
        private static final Logger LOG = LoggerFactory.getLogger(MyExceptionHandle.class);
        //捕获全局异常,处理所有不可知的异常 这个注解是捕获所有异常
        @ExceptionHandler(value=Exception.class)
        public Object handleException(Exception e, HttpServletRequest request) {
            //此处返回json数据
            LOG.error("msg:{},url:{}", e.getMessage(), request.getRequestURL());
            Map<String, Object> map = new HashMap<>();
            //捕捉到的异常如果是自定义异常类,那么就返回自定义异常类中的错误码和错误信息
            if(e instanceof MyException){
                map.put("code",((MyException) e).getCode());
                map.put("msg",((MyException) e).getMsg());
            }
            //这里是除了自定义异常的其他异常信息
            else {
                map.put("code", 100);
                map.put("msg", e.getMessage());
            }
            map.put("url", request.getRequestURL());
            return map;
            
            //此处是进行页面跳转
    //        ModelAndView modelAndView = new ModelAndView();
    //        modelAndView.setViewName("error.html");
    //        modelAndView.addObject("msg", e.getMessage());
    //        return modelAndView;
        }
    //    //这个注解是表示 只捕获自定义的异常类
    //    @ExceptionHandler(MyException.class)
    //    public Object handleException(Exception e, HttpServletRequest request) {
    //        //此处返回json数据
    //        LOG.error("msg:{},url:{}", e.getMessage(), request.getRequestURL());
    //        Map<String, Object> map = new HashMap<>();
    //        map.put("code",((MyException) e).getCode());
    //        map.put("msg",((MyException) e).getMsg());
    //        map.put("url", request.getRequestURL());
    //        return map;
    //
    //    }
    
    }
    

    接下来测试
    创建一个TsetController.java

    3.测试自定义异常
    	@RequestMapping("/myexception")
        @ResponseBody
        public void myexception(){
        //这里创一个随机数 让它大概率抛出异常
            Random random=new Random();
            int i=random.nextInt(10);
            if(i==2){
                return;
            }else {
                throw new MyException(204, "抛出了自定义异常");
            }
        }
    

    结果:
    在这里插入图片描述

    4.测试除了自定义异常的其他异常
        @RequestMapping("/otherexception")
        @ResponseBody
        public void otherexception(){
            Random random=new Random();
            int i=random.nextInt(10);
            if(i==2){
                return;
            }else {
                throw new NullPointerException("抛出了空指针异常");
            }
        }
    

    结果:
    在这里插入图片描述

    展开全文
  •  异常(Exception)一般分为两大类SystemException、ApplicationException,前者是预定义的异常类,后者是用户自定义异常类时需要继承的类  简单自定义异常类Demo   using System; using ...
  • 主要介绍了python异常触发及自定义异常类解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • JAVA自定义异常类

    2017-04-27 09:38:21
    java基本语法,自定义异常类
  • 为什么需要自定义异常类: 我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩...

    为什么需要自定义异常类:

    我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。

    在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?

    什么是自定义异常类:

    在开发中根据自己业务的异常情况来定义异常类.

    自定义一个业务逻辑异常: RegisterException。一个注册异常类。

    异常类如何定义:

    1. 自定义一个编译期异常: 自定义类 并继承于java.lang.Exception
    2. 自定义一个运行时期的异常类:自定义类 并继承于java.lang.RuntimeException

    自定义异常举例

    要求:我们模拟注册操作,如果用户名已存在,则抛出异常并提示:亲,该用户名已经被注册。

    首先定义一个登陆异常类RegisterException:

    // 业务逻辑异常
    public class RegisterException extends Exception {
        /**
         * 空参构造
         */
        public RegisterException() {
        }
    
        /**
         *
         * @param message 表示异常提示
         */
        public RegisterException(String message) {
            super(message);
        }
    }
    

    模拟登陆操作,使用数组模拟数据库中存储的数据,并提供当前注册账号是否存在方法用于判断。

    public class Demo {
        // 模拟数据库中已存在账号
        private static String[] names = {"bill","hill","jill"};
       
        public static void main(String[] args) {     
            //调用方法
            try{
                  // 可能出现异常的代码
                checkUsername("nill");
                System.out.println("注册成功");//如果没有异常就是注册成功,有异常就不会执行这一句
            }catch(RegisterException e){
                //处理异常
                e.printStackTrace();
            }
        }
    
        //判断当前注册账号是否存在
        //因为是编译期异常,又想调用者去处理 所以声明该异常
        public static boolean checkUsername(String uname) throws LoginException{
            for (String name : names) {
                if(name.equals(uname)){//如果名字在这里面 就抛出登陆异常
                    throw new RegisterException("亲"+name+"已经被注册了!");
                }
            }
            return true;
        }
    }
    
    展开全文
  • 日常开发中,当系统提供的异常类型不能满足开发的需求时,就需要自己创建一个新的异常类来拥有自己的异常。 自定义异常类继承自 Exception 类,可以直接继承,或者间接继承。
  • 主要介绍了Java抛出异常与自定义异常类,结合实例形式分析了Java针对错误与异常处理的try、catch、throw等语句相关使用技巧,需要的朋友可以参考下
  • 主要介绍了Java如何实现自定义异常类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 1.为什么?   Java API提供的已有异常类无法准确表述当前发生的异常问题,这时就需要创建自定义的异常。...注:自定义异常类构造方法中调用父类一个含有String类型的构造方法,使得错误信息能在异常类对象...
  • 主要介绍了Java自定义异常类的实例详解的相关资料,希望通过本文能帮助到大家,让大家学习理解掌握这部分内容,需要的朋友可以参考下
  • Java 自定义异常类

    千次阅读 2019-12-26 19:01:31
    Java提供的异常类不够使用我们可以及自定义异常类: 格式: publicclassxxxException extends Exception/RuntimeException{ 添加一个空参数的构造方法; 添加一个带异常信息的构造方法; } 下面是一个简单的例子...
  • 异常处理【自定义异常类

    千次阅读 2018-10-17 17:01:59
    自定义异常类的一般形式为: class MyException extends exception{..................} 在自定义异常中,根据需要定义的属性和方法,或则重载父类的属性和方法,使其能够体现相应的异常信息。 自定义异常类实例...
  • java中自定义异常类

    2020-06-25 19:18:09
    java中自定义异常类 1.语法  一般地,用户自定义异常类都是RuntimeException的子类。  自定义异常类通常需要编写几个重载的构造器。  自定义异常需要提供serialVersionUID  自定义的异常通过throw抛出。  ...
  • Java编写简单的自定义异常类

    万次阅读 多人点赞 2017-12-29 19:19:07
    try catch是这之间所包含的代码如果出现异常时捕获他,并进行处理的,如果代码之间有错误,不会影响程序继续执行下去,程序会继续往后执行。 2:throw 是在程序中明确抛出引发的异常,比如throw new Exception(); 3...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 435,051
精华内容 174,020
关键字:

如何自定义异常类