异常

异常处理

什么是异常?

运行程序的过程中,由于输入了一些非法的数据或一些其他原因导致的问题。

为什么要处理异常?

当出现了异常没有处理,后续的程序就不能被执行

如何处理异常

异常类的体系结构

Throwable是异常类结构的根类,两个子类Error和Exception,一般情况下Error下的异常不需要程序员处理,Exception下的异常是程序员要处理的。

Exception的子类分为两种异常:

  1. 运行时异常(RuntimeException的子类):在编译期不会出现,在运行期出现,通常是通过代码来避免异常而不需要异常处理。常见的:ArrayIndexOutOfBoundsException、NullPointerException、ClassCastException、ArithmeticException、NumberFormatException
  2. 受检查异常(除了RuntimeException类之外的所有异常):在编译期,如果不处理异常则程序不能编译。
    程序的错误提示:Unhandled exception type FileNotFoundException

怎么找到异常出现的位置

出现一个异常后,会输出很多异常信息,找第一行你写的代码。

处理方式

  1. try-catch-finally 语句
    语法:
    try{
    statement;
    }catch(ExceptionType e){
    statement;
    }catch(ExceptionType e){
    statement;
    }…
    finally{
    statement;
    //finally语句块中的语句,只要进入到了try语句一定会被执行
    //释放资源的代码
    }
    执行过程:当执行到try语句中内容时,如果出现了一个异常,由JVM捕获这个异常形成一个对象,直接执行到catch中的代码。
    为什么要写多个catch?因为不同的异常可能有不同的处理方式,如果处理方式都相同可以用Exception统一catch
    如果有多个catch,子类异常的catch写在前面
  2. throws 关键字
    在方法、构造器的后面throws 异常类型,将异常对象抛给调用者。
    当封装一个方法或编写一个构造器的时候,可能会出现异常,不知道如何处理时,应该用throws抛出,交给调用者处理。

throw关键字

将异常对象抛到程序中。

throws和throw的区别

throws是一种异常处理方式,将异常抛给调用者

throw是将异常抛到程序中

自定义异常类

通过继承 Exception 自定义异常类。

final、finally、finalize区别

final修饰类、属性、方法,具体…

finally是try-catch-finally语句中一定会被执行的语句块

finalize是Object类的一个方法,当垃圾回收器要回收一个对象时,调用对象的finalize方法完成回收。

基本类型封装类

为每一个基本类型都定义了一个封装类,封装类中封装了对应的基本类型属性。

byte – Byte

short – Short

int – Integer

long – Long

char – Character

float – Float

double – Double

boolean – Boolean

自动拆装箱(是JDK5的新特性)

基本类型和对应的封装类型在类型上

		Integer i = 3;	//自动装箱操作     Integer i = new Integer(3);
		int j = new Integer(3);   //自动拆箱操作    int j = 3;

常量池

存储常量对象,数据共享且存储对象,整数常量对象值的范围(-128~127)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值