zoukankan      html  css  js  c++  java
  • 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{}
    }
       第一遍看完马士兵老师。仅仅知道马老师讲的好,说不上哪好。如今看第二遍,对各个部分进行总结,深入了解马老师教学内容的精髓。
      学习过程中,总结非常有必要!!


查看全文
  • 相关阅读:
    SpringBoot安装和创建简单的Web应用
    Java设计模式-原型模式
    Java设计模式-单例模式
    Java设计模式-抽象工厂模式(Abstarct Factory)
    Java设计模式-工厂方法模式(Virtual Constructor/Polymorphic Factory)
    Java设计模式-简单工厂模式(Static Factory Method)
    Angular5学习笔记
    设置Nodejs NPM全局路径
    Actor模式初步入门
    Angular5学习笔记
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10542408.html
  • Copyright © 2011-2022 走看看