处理异常的原理:
1)处理方式有两种:try 或者 throws。
2)调用到抛出异常的功能时,抛出几个,就处理几个。(一个try对应多个catch)
3)多个catch,父类的catch放到最下面。
4)catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace。
5)当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
方式如下: try
{
throw new AException();
}
catch (AException e)
{
throw e;
}
6)如果该异常处理不了,但并不属于该功能出现的异常。可以将异常转换后,在抛出和该功能相关的异常;或者异常可以处理,需要将异常产生的和本功能相关的问题提供出去,让调用者知道,并处理。也可以将捕获异常处理后,转换新的异常。比如,汇款的例子。处理异常的格式入下:
try
{
throw new AException();
}
catch (AException e)
{
// 对AException处理。
throw new BException();
}
异常的注意事项:
在子父类覆盖时:子类抛出的异常必须是父类的异常的子类或者子集;如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。 |
|