• 异常--自定义异常概述


    一、自定义异常概述

    1、为什么需要自定义异常

    我们学习了异常体系,了解到了Java中有很多种异常类,每个异常类分别表示着某一种具体的
    异常情况,但是在实际开发中总存在一些SUN公司没有定义好的异常情况,所以我们需要根据自己
    业务的异常情况来定义具体的异常类。例如年龄负数问题,考试成绩负数问题等等,那么这些问题
    我们能不能自己定义异常呢?

    2、自定义异常如何定义

    分析业务,如果你的业务需要的是一个一旦出现就停止程序的异常,那么你就需要一个运行
    时异常,如果你的业务需要的是记录某个异常信息,或者是用来提示的话,那么你需要的是一个检
    查时异常:
    ➢自定义一个编译期异常:自定义类并继承于java.lang.Exception。
    ➢自定义一个运行时期的异常类:自定义类并继承于java.lang.RuntimeException。
    然后重写无参和有参构造函数!

    二、检查时异常demo

    模拟用户注册出现用户名重复的异常错误

    public class UserCheckedExceptionDemo {
    	//模拟数据库中已经存在的三个用户名
    	private static String [] names = {"bill","hill","jill"};
    	public static void main(String[] args) {
    		//需要进行用户的注册,注册之前,先调用检查用户名是否存在的方法
    		String username = "bill";
    		try {
    			checkUsername(username);
    			System.out.println("注册成功!");
    		} catch (RegisterException e) {
    			//具体的错误信息!
    			e.printStackTrace();
    		}
    		System.out.println("程序继续往后面执行!");
    	}
    	private static boolean checkUsername(String username) throws RegisterException {
    		for(String name:names) {
    			if(username.equals(name)) {
    				throw new RegisterException("该用户名已经存在!");
    			}
    		}
    		return true;
    	}
    }
    class RegisterException extends Exception{
    	public RegisterException() {
    		
    	}
    	public RegisterException(String message) {
    		super(message);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    三、运行时异常 demo

    自定义异常的使用,此处模拟的是出现一个RuntimeException的自定义异常

    public class UserRuntimeExceptionDemo {
    	public static void main(String[] args) {
    		operation("核心处理器");
    		System.out.println("继续下一步的操作!");//这一步不会执行
    	}
    
    	private static void operation(String operationPlace) {
    		if("核心处理器".equals(operationPlace)) {
    			throw new IllegalOperationException("触碰到了安全机制,系统马上自动关闭!");
    		}
    		System.out.println("操作成功!");
    	}
    }
    //定义一个非法操作异常,假设用户一旦触发了某个非常关键的操作的话,那么系统会自动关闭
    class IllegalOperationException extends RuntimeException{
    	public IllegalOperationException() {
    	
    	}
    
    	public IllegalOperationException(String message) {
    		super(message);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    MySQL数据库管理--- mysql数据库迁移-v查看报错sql
    关于修改docker容器中的内容进行保存的问题
    orangepi香橙派 ubuntu安装RabbitMQ
    如何在 SAP ABAP ALV 报表里以交通灯的方式显示某一列的值
    豆瓣图书评分数据的可视化分析
    RouYi-Vue项目部署——保姆级教程
    sqlite 合并两个数据库中的特定表
    Exception in thread “main“ java.sql.SQLException: No suitable driver
    Kubernetes---Kubernetes集群部署Mysql集群
    Flink Watermark详解
  • 原文地址:https://blog.csdn.net/weixin_39213232/article/details/132868379