zoukankan      html  css  js  c++  java
  • 第八周作业及总结

    实验六 Java异常

    实验目的
    理解异常的基本概念;
    掌握异常处理方法及熟悉常见异常的捕获方法。
    实验要求
    练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
    掌握自定义异常类的方法。

    实验内容
    编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
    自定义异常类的使用
    车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

    技术方案:

    编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
    程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

    第一题出现错误,表示为

    package zjj;
    
    public class ExceptionTest {
    int arr[] = new int[10];
       public static void main(String[] args){
       int[] arr = new int[10];
      
       try{
            
             System.out.println("输出a[9]:"+arr[9]);
             }catch(ArrayIndexOutOfBoundsException ex){
            	 System.out.println("数组越界"+ex);
             }finally{
             System.out.println("验证finally执行");
    }
    }
    }
    

    这是异常运行截图

    这是正常运行截图

    总结:
    本周学习了异常的处理分为三种方法:一,不处理,只有出现Runtime Exception可以不用try。。。catch处理
    二,立即处理
    三,延迟处理{
    延迟处理使用throw和throws关键字
    这里要注意当抛出到mian时就不能再抛出异常,要进行处理了
    throw和throws的区别
    Throw:
    作用在方法内,表示抛出具体异常,由方法体内的语句处理。
    具体向外抛出的动作,所以它抛出的是一个异常实体类。若执行了Throw一定是抛出了某种异常。
    Throws:
    作用在方法的声明上,表示如果抛出异常,则由该方法的调用者来进行异常处理。
    主要的声明这个方法会抛出会抛出某种类型的异常,让它的使用者知道捕获异常的类型。
    出现异常是一种可能性,但不一定会发生异常。
    实例:

    void testException(int a) throws IOException,{
               try{
                     ......
               }catch(Exception1 e){
                  throw e;
               }catch(Exception2 e){
                  System.out.println("出错了!");
               }
               if(a!=b)
                  throw new  Exception3("自定义异常");
    }
    

    实列来源百度
    自定义异常处理:作用是根据自己的异常类去进行定义只需要继承Exception类或者是RuntimeException类

  • 相关阅读:
    201671030116宋菲菲 实验三作业互评与改进报告
    通读《构建之法》提出问题
    201671010460-朱艺璇-实验四附加实验
    201671010460朱艺璇 词频统计软件项目报告
    201671010460朱艺璇 实验三作业互评与改进报告
    阅读《现代软件工程—构建之法》提出的问题
    手把手带你了解消息中间件(3)——RocketMQ
    字符编码的历史由来
    linux常用命令
    linux各目录及重要目录的详细介绍
  • 原文地址:https://www.cnblogs.com/zou1223/p/11697345.html
Copyright © 2011-2022 走看看