Java基础_4 自定义异常类

Object类

  1. 是层次结构的根类,所有类直接或者间接继承Object类

  2. 介绍Object类中的两种重要方法:

    • equals(开发中一般重写比较规则)

      boolean equals(Object obj);	//比较两个对象是否“相等”(即地址)
      

      注:在String类中,重写了Object中equals方法,比较其值是否一致

    • toString (开发中一般重写)

      String toString();	//返回值该对象的字符串表示
      

异常 Exception

1. 异常的继承体系
  1. 异常的根类:Throwable 可抛出的
    • 子类1—Exception:异常
      • 编译时异常
      • 运行时异常:RunTimeException
    • 子类2—Error:错误
2.异常产生的过程
  1. JVM先new一个对应异常类的对象,并向上抛给调用者,直到又抛给JVM

  2. 创建异常

    throw new ArrayIndexOutOfBoundsException("....")
    
3.异常的处理
  1. 不处理(再次声明抛出)

  2. 捕获处理

    try{
    	//可能出现异常的代码
    }catch(Exception e){
    	//处理异常,或者打印一些信息
    }finally{
    	//写上必须要执行的代码
    	//通常是释放资源的代码----------------
    }
    
  3. 其他的处理方式

    • 多个异常分别处理:每一个异常都try catch

    • 多个异常一次捕获多次处理:try一次,catch多次

    • 多个异常一次捕获异常处理:try一次,catch一次

4.自定义异常类
  1. 创建一个类,这个类必须用Exception结尾

  2. 必须继承 Exception(编译时异常类) 或者 RunTimeException(运行时异常类)

  3. 至少两个构造方法

    • 空参数构造

    • 带有String类型参数的构造

      public class MyException extends Exception{
      	public MyException() {};	//无参构造
      	public MyException(String s) {	//s即异常抛出时,输出的字符串
      		super(s);	//通过父类的构造方法存储s
      	}
      }
      
  4. 示例:在创建Person对象时对其年龄进行判断

    1. 自定义MyException异常类

      public class MyException extends Exception{
      	public MyException() {};
      	public MyException(String s) {
      		super(s);
      	}
      }
      
    2. person类

      public class Person {
      	String name;
      	int age;
      	public Person() {	//无参构造
      		super();
      	}
      	public Person(int age) throws MyException {	//有参构造,throws表示在此处可能会抛出异常
      		if(age < 0 || age > 150) {
      			throw new MyException("对不起,您的年龄不符合要求!");	//throw表示在此处抛出异常
      		}
      		this.age = age;
      	}
      }
      
    3. demo

      public class demo01 {
      	public static void main(String[] args) {
      		try {	//捕捉并处理异常
      			Person p = new Person(220);
      		} catch (MyException e) {
      			e.printStackTrace();
      		}
      	}
      }
      
    4. 输出结果

      com.edu.demo自定义异常类.MyException: 对不起,您的年龄不符合要求!
      	at com.edu.demo自定义异常类.Person.<init>(Person.java:12)
      	at com.edu.demo自定义异常类.demo01.main(demo01.java:10)
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值