java异常中常见的问题

1.在自定义异常类时注意:

    所有异常都必须是 Throwable 的子类。
    如果希望写一个检查性异常类,则需要继承 Exception 类。
    如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

2.运行时异常和一般异常的不同

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
Java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常

3.Error和Exception的区别:

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

4.最常见的五个RuntimeException:

ClassCastException(类转换异常)
IndexOutOfBoundException(数组越界异常)
NullPointerException(空指针异常)
ArrayStoreException(数据存储异常,操作数组时类型不一样)
BufferflowException(IO操作异常)

5.try块中可以抛异常问题:

try 用来指定一块预防所有“异常”的程序;般情况下是用 try 来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,
这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理;

6.异常链:

“异常链”是Java中非常流行的异常处理概念,是指在进行一个异常处理时抛出了另外一个异常,由此产生了一个异常链条。
该技术大多用于将“ 受检查异常” ( checked exception)封装成为“非受检查异常”(unchecked exception)或者RuntimeException。
顺便说一下,如果因为因为异常你决定抛出一个新的异常,你一定要包含原有的异常,
这样,处理程序才可以通过getCause()和initCause()方法来访问异常最终的根源

7.throws和throw的区别:

throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常, 你也可以申明未检查的异常,但这不是编译器强制的。
如果方法抛出了异常那么调用这个方法的时候就需要将这个异常处理。
另一个关键字  throw 是用来抛出任意异常的,按照语法你可以抛出任意 Throwable (i.e. Throwable 或任何Throwable的衍生类) ,
 throw可以中断程序运行,因此可以用来代替return . 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值