Object类和异常

Object类(全部类的顶级父类)jvm

今天说的两个方法:
equals:
        用于比较两个对象是否相同,它实际上是使用两个对象的内存地址进行比较,底层默认使用的是==比较运算符来判断的。
        在之后开发中,要比较两个对象是否相同,常常会根据对象中的属性值进行比较。也就是常常须要重写Object类中的equals方法,根据对象的属性值进行比较
        注意:在重写Object类中的equals方法时,必定要注意参数是Object类型,在调用对象的属性时,必定要进行类型转换,在转换以前必定要进行类型判断
toString:
        返回该对象的字符串表现形式。其实该字符串内容就是对象的类型+@+内存地址值。
        在开发中,常常须要按照对象的属性获得相应的字符串表现形式,所以也须要重写它。
        注意:在咱们直接使用输出语句输出对象名的时候,其实经过该对象调用了其toString()方法.
异常:(分为运行时异常和编译时异常)
异常的概念:
        异常自己是一个类,产生异常就是建立异常对象并抛出(throw)了一个异常对象。Java处理异常的方式是中断处理。
 顶级父类:Throwable
子类:Exception、Error(不可修改错误。不用咱们处理)
Exception子类:
RuntImeException(运行时异常)
运行时异常(RuntimeException):运行时可能会报错,能够不处理。
编译时异常(Exception):编译时没法编译经过。
自定义异常:
自定义运行时异常:须要继承RuntimeException。写构造方法便可
自定义编译时异常:须要继承Exception。写构造方法便可
自定义异常:须要手动抛出异常
自定义异常格式:
Class 异常名 extends Exception{ //或继承RuntimeException
        public 异常名(){
        }
}
 
处理异常:try{}catch(异常对象){}
捕获处理,将异常获取,使用try/catch作分支处理
格式:
try{
        须要检测的异常;
}catch(异常对象) {
        异常处理代码:
        能够调用异常的方法一般咱们只使用一个方法: printStackTrace打印异常信息
}
另外两种处理方式:
        1.声明抛出处理,出现异常后不处理,声明抛出给调用者处理。
        格式:
                方法声明上加throws 异常类名
        2.抛出异常 使用throw关键字。写在方法内部。
        格式:
                throw new 异常类名(参数);
        3.抛出指定异常的具体操做步骤:
                1,建立一个异常对象。封装一些提示信息(信息能够本身编写)。
                2,须要将这个异常对象告知给调用者。怎么告知呢?怎么将这个异常对象传递到调用者处呢?经过关键字throw就能够完成。throw 异常对象;
        throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
注意:异常处理,指处理的一种可能性,即有了异常处理的代码,不必定会产生异常。
若是没有产生异常,则代码正常执行,若是产生了异常,则中断当前执行代码,执行异常处理代码。
 
捕获异常:try{}catch(异常对象){}finally{}
        格式:
try {
        //须要被检测的语句。
}catch(异常类变量) { //参数。
        //异常的处理语句。
}finally {
        //必定会被执行的语句。
}
 
异常的注意事项:
        多异常处理
                捕获处理:
                    1多个异常分别处理
                    2多个异常一次捕获屡次处理
                    3多个异常一次捕获一次处理
        声明抛出异常:
                声明上使用,一次声明多个异常
                运行时异常被抛出以前能够不处理。即不捕获也不声明抛出
                若是父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集
                父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
 
                当多异常处理时,捕获处理,前边的类不能是后边类的父类
                在try/catch后能够追加finally代码块,其中的代码必定会被执行,一般用于资源回收。
                一个try 多个catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对每种异常信息进行不一样的捕获处理。
注意:
        这种异常处理方式,要求多个catch中的异常不能相同,而且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。
        try finally 组合: 对代码进行异常检测,检测到异常后由于没有catch,因此同样会被默认jvm抛出。异常是没有捕获处理的。可是功能所开启资源须要进行关闭,全部finally。只为关闭资源。
相关文章
相关标签/搜索