Java基础:异常及自定义异常

 

Java中已经提供了许多的异常类来处理相关的异常,所有异常的根类:Java.lang.Throwable.

  • Throwable有两个子类:Error和Exception
  1. Error(错误):指的是程序本身无法处理的问题
  2. Exception(例外):指的是程序本身可以处理的问题
  • Exception(异常)的分类:
  1. 非运行时异常:指的是编译期就会检查的异常。例如:IO流异常,数据库驱动加载异常。
  2. 运行时异常:指的是运行期间发生的异常。例如:RuntimeException类以及其所有子类都属于运行时异常
  • 处理异常的两种方式:

如果自己能够处理则自己处理:通过try_catch来捕获异常。

        //非运行时异常:加载 数据库驱动
	try {
		Class.forName("com.mysql.jdbc.Driver");//可能产生异常的代码
	}catch (ClassNotFoundException e) {
		//异常产生后执行的代码
		System.out.println("数据库驱动加载失败");
		//打印异常的详细信息
		e.printStackTrace();
	}finally {
		System.out.println("不管是否产生异常,都会执行的代码");
	}

如果自己不能处理则抛出给上级去处理:通过关键字throws可以将异常抛出给上级处理。

private static void test1() throws ClassNotFoundException{
		//非运行时异常:加载 数据库驱动
		Class.forName("com.mysql.jdbc.Driver");//编译期就会检查,如果不处理则无法通过编译。
	}

   自定义异常:Java系统已经提过了非常多的异常类,但是有时候还是不满足用户的需求,此时我们可以自定义异常。

  1. 定义异常类:异常描述+Exception
  2. 继承异常类:Exception或者RuntimeException
  3. 重写两个构造器:一个空构造和一个带参数提示的构造器
//自定义异常类
class AgeValueException extends RuntimeException{//运行时异常
	//一个空构造
	public AgeValueException() {
		super();
	}
	//一个带参数提示的构造器
	public AgeValueException(String message) {
		super(message);
	}
}
//设置年龄:要求年龄只能设置0到100岁
public void setAge(int age) {
	   //判断是否超出年龄范围
		if(age <0 || age>100) {
		//年龄超出范围:抛出异常 - 自定义异常
		AgeValueException ave = new AgeValueException("超出年龄范围,年龄只能设置在[0,100]之间!");
		//抛出该异常对象
		throw ave;
	}else {
		this.age = age;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值