Object类
-
是层次结构的根类,所有类直接或者间接继承Object类
-
介绍Object类中的两种重要方法:
-
equals(开发中一般重写比较规则)
boolean equals(Object obj); //比较两个对象是否“相等”(即地址)
注:在String类中,重写了Object中equals方法,比较其值是否一致
-
toString (开发中一般重写)
String toString(); //返回值该对象的字符串表示
-
异常 Exception
1. 异常的继承体系
- 异常的根类:Throwable 可抛出的
- 子类1—Exception:异常
- 编译时异常
- 运行时异常:RunTimeException
- 子类2—Error:错误
- 子类1—Exception:异常
2.异常产生的过程
-
JVM先new一个对应异常类的对象,并向上抛给调用者,直到又抛给JVM
-
创建异常
throw new ArrayIndexOutOfBoundsException("....")
3.异常的处理
-
不处理(再次声明抛出)
-
捕获处理
try{ //可能出现异常的代码 }catch(Exception e){ //处理异常,或者打印一些信息 }finally{ //写上必须要执行的代码 //通常是释放资源的代码---------------- }
-
其他的处理方式
-
多个异常分别处理:每一个异常都try catch
-
多个异常一次捕获多次处理:try一次,catch多次
-
多个异常一次捕获异常处理:try一次,catch一次
-
4.自定义异常类
-
创建一个类,这个类必须用Exception结尾
-
必须继承 Exception(编译时异常类) 或者 RunTimeException(运行时异常类)
-
至少两个构造方法
-
空参数构造
-
带有String类型参数的构造
public class MyException extends Exception{ public MyException() {}; //无参构造 public MyException(String s) { //s即异常抛出时,输出的字符串 super(s); //通过父类的构造方法存储s } }
-
-
示例:在创建Person对象时对其年龄进行判断
-
自定义MyException异常类
public class MyException extends Exception{ public MyException() {}; public MyException(String s) { super(s); } }
-
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; } }
-
demo
public class demo01 { public static void main(String[] args) { try { //捕捉并处理异常 Person p = new Person(220); } catch (MyException e) { e.printStackTrace(); } } }
-
输出结果
com.edu.demo自定义异常类.MyException: 对不起,您的年龄不符合要求! at com.edu.demo自定义异常类.Person.<init>(Person.java:12) at com.edu.demo自定义异常类.demo01.main(demo01.java:10)
-