Java自定义异常

独自空忆成欢 提交于 2020-02-10 16:03:19

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。

1.所有异常都必须是 Throwable 的子类。

2.如果希望写一个检查性异常类,则需要继承 Exception 类。

3.如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

4.习惯上,自定义异常类应该包含2个构造器:一个是默认的构造器,另一个是带有详细信息的构造器。

可以像下面这样定义自己的异常类:

/**IllegalAgeException:非法年龄异常,继承Exception类*/
class IllegalAgeException extends Exception {
    //默认构造器
    public IllegalAgeException() {
     
    }
    //带有详细信息的构造器,信息存储在message中
    public IllegalAgeException(String message) {
        super(message);
    }
}

测试异常:

import java.util.Scanner;

public class TestSexException {
	public static void main(String[] args)   {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入您的性别:");
		String gender=input.next();
		if("男".equals(gender)||"女".equals(gender)){
			System.out.println("性别录入正确");
		}else{
			try {
				throw new SexException("性别只能是男或者女");
			} catch (SexException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.err.println(e.getMessage());
			}
		}
		
	}
}

运行效果:

注:

      1.要避免使用异常处理代替错误处理,这样会降低程序的清晰性,并且效率低下。

      2.处理异常不可以代替简单测试---只在异常情况下使用异常机制。

      3.不要进行小粒度的异常处理---应该将整个任务包装在一个try语句块中。

      4.异常往往在高层处理。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!