java异常机制

  java异常机制中主要包括一个图、五个关键字、异常捕获顺序、异常和重写的关系,下面分部详解:

一个图

                                        java异常机制
      借助这个图,我们需要知道Throwable是所有异常的祖宗类。Error:系统错误,处理不了的错误,Exception:可以处理的异常。Exception又分为RuntimeException和其它,RuntimeException:经常出的错误,可以catch,也可以不catch;其它是我们必须要处理的异常。

五个关键字

   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{}
}
   第一遍看完马士兵老师,只知道马老师讲的好,说不上哪好。现在看第二遍,对各个部分进行总结,深入了解马老师教学内容的精髓。
  学习过程中,总结很有必要!!!

java异常机制,布布扣,bubuko.com

java异常机制

上一篇:C++语言笔记系列之十一——友元函数与拷贝构造函数


下一篇:C# 禁止通过标题栏移动窗体