006Java异常处理

异常的体系结构:

java.lang.Throwable
		|-----java.lang.Error:java程序对此无能为力,一般不编写针对性的代码进行处理。
		|-----java.lang.Exception:可以进行异常的处理。
			|------编译时异常(checked)
					|-----IOException
						|-----FileNotFoundException
					|-----ClassNotFoundException
			|------运行时异常(unchecked,RuntimeException)
					|-----NullPointerException
					|-----ArrayIndexOutOfBoundsException
					|-----ClassCastException
					|-----NumberFormatException
					|-----InputMismatchException
					|-----ArithmeticException

捕获异常的有关信息:

与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。

getMessage() 获取异常信息,返回字符串。

printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

注意:

在多态的情况下,对方法的调用-异常的捕获按父类声明的异常处理。

手动抛出异常时,可以抛出的异常必须是Throwable或其子类的实例。

throws声明抛出异常的列表。

try-catch-finally:真正的将异常给处理掉了。

throws的方式只是将异常抛给了方法的调用者。并没真正将异常处理掉。

如果父类中被重写的方法没throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中异常,必须使用try-catch-finally方式处理。

执行的方法a中,先后又调用了另外的几个方法,这几个方法是递进关系执行的。

我们建议这几个方法使用throws的方式进行处理。而执行的方法a可以考虑使用try-catch-finally方式进行处理。

用户自定义异常:

一般地,用户自定义异常类都是RuntimeException的子类。

自定义异常类通常需要编写几个重载的构造器。

自定义异常需要提供全局常量serialVersionUID。

自定义的异常通过throw抛出。

自定义异常最重要的是异常类的名字,当异常出现时,可以根据名字判断异常类型。

例如:

class MyException extends Exception {
	static final long serialVersionUID = 13465653435L;
	private int idnumber;

	public MyException(String message, int id) {
		super(message);
		this.idnumber = id;
	}

	public int getId() {
		return idnumber;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值