异常处理

 

1. 内部类

1.1 一般内部类

  • 内部类是定义在其他类内部的类。
  • 内部类可以是外部类的成员变量。
  • 内部类可以是私有的或静态的,具体取决于访问和使用的需求。

1.2 局部内部类

  • 局部内部类是在方法内部定义的,不能有访问修饰符。
  • 在局部内部类中使用的变量会隐式变为final。

1.3 匿名内部类

  • 匿名内部类是没有名字的类,它可以继承一个类或实现一个接口。
  • 通常用于快速实现接口或抽象类的实例。
  • 可以在创建时直接实例化。

2. Object类

2.1 Object类方法

  • clone(): 创建并返回对象的副本。
  • finalize(): 不推荐使用,已在JDK 9中过时。
  • getClass(): 返回对象的运行时类。
  • hashCode(): 返回对象的哈希码值/地址值。
  • toString(): 返回对象的字符串表示形式。
  • notify(), notifyAll(), wait(), wait(long timeoutMillis), wait(long timeoutMillis, int nanos): 与同步相关的方法。

2.2 重写equals和hashCode

  • equals(Object obj): 默认使用==进行比较;建议根据内容进行重写。
  • hashCode(): 当重写equals时,应当重写hashCode以保持equalshashCode的一致性。

3. 枚举

  • 枚举是一种特殊的类,定义了一组有限的常量值。
  • 枚举通常用于表示一组相关的常量。
  • 枚举常量通常使用大写字母表示。

4. 异常处理

4.1 异常体系

  • Throwable是所有错误和异常的超类。
  • Error表示严重错误,通常无法恢复。
  • Exception表示可能出现的异常,分为可检查(编译时)和不可检查(运行时)异常。

4.2 异常处理结构

  • 使用try-catch块来处理异常。
  • 可以使用多个catch块来捕获不同类型的异常。
  • finally块包含无论是否发生异常都会执行的代码。

4.3 抛出异常

  • 使用throw可以显式抛出异常。
  • 在方法签名中使用throws声明可能抛出的异常。

4.4 处理和打印异常信息

  • 使用getMessage()toString()printStackTrace()等方法获取和打印异常信息。

 

异常体系 : Throwable : 是Java语言中所有错误和异常的超类 |Error/错误 : 表示合理的应用程序不应该试图捕捉的严重问题. |Exception/异常 : 表示合理的应用程序可能想要捕获的条件。 |RuntimeException/运行时异常 : 代码执行过程中才出现的异常 , 比如 NullPointerException |RuntimeException之外的异常/编译时异常 : 编译时期就会提示,比如 ClassNotFoundException

只有作为此类实例(或其子类之一)的对象才会由Java虚拟机抛出, 或者可以由Java抛出语句抛出。 类似地,只有这个类或它的一个子类可以是catch子句中的参数类型。 为了在编译时检查异常,Throwable和任何不属于RuntimeException或Error子类的Throwable子类都被视为已检查异常。 异常处理基本格式 : try{ 可能发生异常的代码; }catch(异常类型 异常名){ 异常发生时的处理方式; }finally{ 一定要被执行的代码; }

注意 : 1.有异常但没有异常处理结构时 : 程序会终止在异常发生的那一行 2.有异常并且有对应异常处理结构时 : 程序在异常产生的位置开始跳转 ----> catch语句 ----> finally语句 ----> 程序正常运行 3.有异常并且有异常处理结构 , 但是没有对产生的异常进行处理时 : 程序在异常产生的位置开始跳转 ----> finally语句 ----> 程序打印异常信息 ----> 程序终止 4.有 处理方式 , 但没有异常产生 : try语句执行完后 --> finally语句 ---> 程序正常运行

throw : 动词 , 用于函数内部抛出一个异常 ; 如果抛出的是一个编译时异常,需要在函数部分进行声明 ; 如果抛出的是一个运行时异常,不需要在函数部分进行声明 ;

throws : 名次 , 用于函数声明部分 , 声明异常

 
posted @   Cyptals  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示