• 我的学习之路_第四章_异常


    一 Object 类

    equals方法: 四则运算是不能操作引用类型的 ,而 == 可以操作引用类型,但是在任何时刻只要是用 == 比较引用类型,比较的永远都是地址值.

    返回类型 Boolean 比较两个对象是否相等,比较的是地址值

    Object 的equals方法比较的是地址值,子类可以重写此方法,比较两个对象的属性值

    toString方法:
    返回类型String toString()返回对象的字符串表现形式 类型+@+哈希值(地址值)
    看一对象的地址值,只能区分是否为同一个对象,没有什么太大的意思,所以一般子类都会重写toString方法
    作用: 不再打印地址值,而是打印属性值
    实际上当我们打印一个对象的变量名,系统会默认调用此对象的toString方法


    二 异常:

    异常在java中的本身就是一个类,产生异常就是创建异常对象并抛出一个异常对象.java处理异常的方式是中断处理

    1. 异常的分类:

    异常的根类是: Throwable ,其下有两个子类: Error 和 Exception .一般所说的异常是指Exception
    (1) Error 是无法通过处理的错误.
    特点:只能修改代码,否则程序无法执行


    (2)Exception 编译时异常,编译时是无法通过编译的
    特点:可以进行处理,处理后代码可以继续执行

    Exception有一个子类 RuntimeException (运行时异常), 运行时可能会报错,可以不处理

    【 1 】处理Exception的方式
    使用关键字 throw 在方法内使用 throw 异常的对象

    第一种方式: throws 关键字,在方法的申明上使用 申明异常
    格式: throws 异常的类名
    注意事项:throws 可以声明多个异常,多个异常之间使用 , 隔开
    throws 可以声明多个异常共同的父类

    第二种方式:
    try{
    可能出现异常的代码
    }catch(异常类名 变量名){
    任意内容 一般打印异常对象的信息
    }

    多catch的异常处理
    * try{
    可能出现异常的代码
    }catch(异常的类名 变量名){

    }catch(){

    }...

    注意事项: 多个catch之间有没有顺序啊?

    异常没有直接继承关系 多个catch是没有顺序的

    异常有继承关系 多个catch 是有顺序的,越大的越往后放


    try{

    }catch(){

    }finally{
    必须执行的代码
    无论是否有异常 无限是否处理了异常
    }


    编译时异常: Exception(父类)
    在编译时报错,必须处理,不处理程序不能执行

    运行时异常: RuntimeException(子类)
    在编译时不报错,运行时才会报错,可以处理,也不可以不处理 不推荐处理
    一般情况下 出现运行异常都是代码有问题,要修改代码
    当运行时异常被抛出时,程序会中断,所以我们有时会使用运行时异常帮我们中断程序


    子父类方法重写时遇到异常的处理问题:

    父类方法抛出异常:

    子类可以不抛异常
    子类也可以抛出异常,但是 子类抛出的异常必须要小于等于父类的异常

    父类方法没有抛出异常:

    子类也不可以抛出异常 如果子类有异常,只能自己处理,不可以抛出


    异常的三个常用方法:

    获取异常信息的方法:
    返回类型 String getMessage() 打印 异常字符串
    返回来兴 String toString() 简短描述异常(打印 异常的类型)
    没有返回值 printStackTrace() 最详细的异常信息(打印 异常的类名 字符串 位置 等等)


    三. 自定义异常

    有些异常,是java中没有提供给我们的,这时候我们就需要用自定义异常来解决.

    自定义异常的创建:
    1.继承Exception 就是编译时异常 如果继承RuntimeException就是运行时异常
    2.添加构造方法

    自定义异常的使用: JDK提供的异常如果使用,自定义异常就如何使用

    自定义异常的处理: 要么直接 throws 要么 try catch (和JDK提供的异常处理方式一样)

  • 相关阅读:
    YYHSOI模拟赛题解(T6围栏问题)
    取水
    Spring.Net实现跨数据库服务层事务管理
    使用node.js + jsonserver + mock.js 搭建本地开发mock数据服务
    [转]SQL SERVER整理索引碎片测试
    asp.net mvc 安全测试漏洞 " HTTP 动词篡改的认证旁路" 问题解决
    JavaScript中子类调用父类方法的实现
    asp.net mvc 安全测试漏洞 "跨站点请求伪造" 问题解决
    C#学习记录3下——类的封装,继承,多态
    C#学习记录8——XAML
  • 原文地址:https://www.cnblogs.com/jia-/p/6947449.html
Copyright © 2020-2023  润新知