j2se--异常机制

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/quwenzhe/article/details/35610853

  java异常机制中主要包含一个图、五个keyword、异常捕获顺序、异常和重写的关系。以下分部具体解释:

一个图

                                        
      借助这个图,我们须要知道Throwable是全部异常的祖宗类。Error:系统错误,处理不了的错误,Exception:能够处理的异常。Exception又分为RuntimeException和其他。RuntimeException:常常出的错误,能够catch。也能够不catch;其他是我们必须要处理的异常。

五个keyword

   try、catch、finally、throw、throws  

public class Test {

	public static void main(String[] args) {
		Test t = new Test();
		t.manager();
	}

	public void regist(int num) throws MyException {
		if (num < 0) {
			throw new MyException("人数为负值,不合法", 3);
		}
		System.out.println("登记人数:" + num);
	}

	public void manager() {
		try {
			regist(-1);
		} catch (MyException e) {
			System.out.println("登记失败,出错类型码=" + e.getId());
		} finally {
			System.out.println("c操作结束");
		}
	}
}
      try是代码正常执行时的部分。catch是代码捕获到异常时执行的部分,finally是不管代码是否正常执行终于都会执行的部分。
   在manager方法中调用了必须捕获异常的regist方法。

在调用时。能够採取上述try...catch的方式对异常进行处理。在catch中捕获到regist方法throw的new MyException异常。也能够用throws向manager方法的上一级继续抛异常,形式例如以下:

public void manager() throws MyException{
     regist(-1);
     System.out.println("c操作结束");
}
      因为manager方法没有对异常进行处理,所以在main方法中调用manager方法时,要么用try...catch进行处理,要么向main方法的上一级继续抛异常。

先逮小的,再逮大的

      比方在被调用的方法中。即存在IOException异常,又存在FileNotFoundException异常(继承于IOException异常)。我们应该先捕获FileNotFoundException异常再捕获IOException异常。

异常和重写的关系

  重写须要抛出与原方法所抛出异常类型一致异常或不抛出异常。

 

  假设A中的method方法抛出IOException异常。则继承A的B要么不抛出异常。要么也抛出IOException异常,演演示样例如以下: 
class A{
	public void method() throws IOException{}
}
    重写方案一:
class B extends A{
	pulic void method{}
}
  重写方案二:
class B extends A{
	public void method() throws IOException{}
}
   第一遍看完马士兵老师。仅仅知道马老师讲的好,说不上哪好。如今看第二遍,对各个部分进行总结,深入了解马老师教学内容的精髓。
  学习过程中,总结非常有必要!!


【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/ldxsuanfa/p/10542408.html