对于这个问题毕老师的视频上是有详细解答的,电脑冒烟异常,如果自己处理不了或者不想处理的话,可以抛出去让JVM处理,或者抛给指定的对象让其对异常做出处理。让指定的对象处理的话需要自定义一个异常类来完成这个异常的转换。
1.首先你要自定义一个冒烟的异常类和一个出现冒烟异常后转移异常的自定义异常处理类- class ComDeadException extends Exception
- {
- ComMaoyanException(String message)
- {
- super(message);
- }
- }
- class NoPlanException extends Exception
- {
- NoPlanException(String message)
- {
- super(message);
- }
- }
复制代码 异常类构造函数之所以用的是super语句是继承了异常类,这个你知道的。
之后就是在电脑爆出冒烟异常后,把冒烟异常抛给老师,老师接到冒烟异常后也无法处理,就通过自己定义的异常处理类NoPlanException来把冒烟异常转抛给上一级去处理。
以下是Teacher类中捕捉到的冒烟异常,在异常处理过程中又抛给特定的对象了- catch (ComDeadException e)
- {
- test();
- throw new NoPlanException("class interrupted..."+ e.getMessage());//处理不了抛出去
- //test(); 错误,因为上句即为结束标识,遇到异常后不会再继续运行,所以没有意义。
- }
复制代码 在最后的主函数中,才会捕捉到这个NoPlanException异常,并最后处理,老师从而转移了人民内部矛盾。- public class ExceptionTest
- {
- public static void main(String[] args)
- {
- Teacher t = new Teacher("Sir");
- try
- {
- t.tech();
- }
- catch (NoPlanException e)
- {
- System.out.println(e.toString());
- System.out.println("Run B plan...");
- }
- }
-
- }
复制代码 |