Object ---- 异常

Object
equals() 比较对象
在开发中,只要使用object类中的equals方法,必须复写,因为底层比较的是地址,没有任何意义

== 和 equals 区别: == 比较两个常量值, equals比较引用数据类型
如果比较自定义数据类型, 那么必须复写equals方法
== 也可以比较地址,用== 比较两个地址值,永远不等, 所以没有意义,

toString()返回对象的字符串表示
复写toString 方法, 打印对象, 快捷键 alt + shift + s + s

hashCode() 哈希码值: 根据对象的真是地址, 转换一个整数

异常

异常顶类: Throwable ---> Error(系统内部错误) / Exception(异常)

1 编译时异常: Exception 在编译时, 编译器检测的异常 抛异常需要声明, 捕获必须有处理方案:

声明:
告诉调用者, 这个方法有异常, 让调用者来处理,声明异常用:throws
public void show() throws Exception{ }
可以声明多个异常 public void show
() throws 异常名1,异常名2{ }
捕获异常: 自己处理 快捷键 alt + shift + z
try{
可能发生异常的代码
}catch{
处理异常的代码
}
捕获多个异常: try { }catch { }catch{ }catch{ }

如果捕获多个异常,最上边的最好是最小的子继承类,如果最上边是最大的父类,那么所有的异常都被第一个捕获

2 运行时异常:RuntimeException 运行时jvm检测的异常,运行时异常可以不做处理, jvm处理,但是运行异常也可以声明和捕获

throw newRuntimeException("=======");

自定义异常:
class DemoException extends Exception{ }
class DemoException extends RuntimeException{ }

3 finally 必须执行的代码

throw: 抛异常, 位置:方法体
throws: 声明异常, 位置: 参数列表后

catch捕获异常时,catch条件匹配异常可以用父类(应用多态),不可以用子类
注意: 子类复写父类的函数时, 如果父类中的方法没有声明异常, 当在继承中, 子类方法有异常, 而父类没有异常, 那么对于子类中的异常方法只能捕获处理,不能声明处理

第一步: 实体类中javabean中

     private double width;
          private double height;
          public Rectangle(double width, double height) {
                 if (width <= 0) {
                        throw new   IllegalWidthException("宽度不合法");
                }
                 if (height <= 0) {
                        throw new   IllegalHeightException("长度不合法");
                }
                 this.width = width;
                 this.height = height;
         }

第二步: 自动创建异常类:ctrl + 1 create

public class IllegalHeightException extends RuntimeException {

    public IllegalHeightException() {
          super();
          // TODO Auto-generated constructor stub
   }

    public IllegalHeightException(String message ) {
          super(message );
          // TODO Auto-generated constructor stub
   }

第三步:测试类中写捕获异常(try cacht),,或者声明异常(直接抛出)

  try {
                Rectangle rectangle = new Rectangle(2.0, -3.0);
                System. out.println(rectangle );
                System. out.println(rectangle .getArea());
                
         } catch (Exception e ) {
   //           e.printStackTrace();
                System. out.println("你个垃圾" );
         }

你可能感兴趣的:(Object ---- 异常)