zoukankan      html  css  js  c++  java
  • 201521123035 《Java程序设计》第九周学习总结

    1. 本周学习总结

    1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容。

    2. 书面作业

    题目5-1

    1.常用异常

    1.1 截图你的提交结果(出现学号)

    1.2 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?

    以前学C语音的时候就经常会出现数组越界,但是不需要捕获,想要避免的话就是在建数组的时候自己要再仔细一点。
    

    1.3 什么样的异常要求用户一定要使用捕获处理?

    Exception其他子类的异常就要求用户要用try-catch捕获处理。
    

    2.处理异常使你的程序更加健壮

    题目5-2

    2.1 截图你的提交结果(出现学号)

    2.2 实验总结

    实验总结:这个实验还算比较简单的,而且是老师一步一步带着做的,比较轻松。
    

    3.throwthrows

    3.1 截图你的提交结果(出现学号)

    3.2 阅读Integer.parsetInt源代码,结合3.1说说抛出异常时需要传递给调用者一些什么信息?

    抛出异常时,应该传递给调用者错误原因。比如3.1中,arr数组越界则抛出ArrayIndexOutOfBoundsException异常,当发生空指针,产生NullPointerException异常。
    

    4.函数题

    题目4-1(多种异常的捕获)

    4.1 截图你的提交结果(出现学号)

    4.2 一个try块中如果可能抛出多种异常,捕获时需要注意些什么?

    捕获是要可以在try中直接放入多个catch,但是要注意,子类异常必须放在父类异常前面。
    

    5.为如下代码加上异常处理

    byte[] content = null;
    FileInputStream fis = new FileInputStream("testfis.txt");
    int bytesAvailabe = fis.available();//获得该文件可用的字节数
    if(bytesAvailabe>0){
        content = new byte[bytesAvailabe];//创建可容纳文件大小的数组
        fis.read(content);//将文件内容读入数组
    }
    System.out.println(Arrays.toString(content));//打印数组内容
    

    5.1 改正代码,让其可正常运行。注1:里面有多个方法均可能抛出异常 注2:要使用finally关闭资源。

    public static void main(String[] args) throws IOException {
        byte[] content = null;
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("testfis.txt");
            int bytesAvailabe = fis.available();//获得该文件可用的字节数
            if(bytesAvailabe>0){
                content = new byte[bytesAvailabe];//创建可容纳文件大小的数组
                fis.read(content);//将文件内容读入数组
            }
            System.out.println(Arrays.toString(content));//打印数组内容 
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally{
              try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    5.2 如何使用Java7中的try-with-resources来改写上述代码实现自动关闭资源?

     public static void main(String[] args) throws IOException {
                byte[] content = null;
                try(FileInputStream fis= new FileInputStream("testfis.txt"))
                {
                    
                    int bytesAvailabe = fis.available();//获得该文件可用的字节数
                    if(bytesAvailabe>0){
                    content = new byte[bytesAvailabe];//创建可容纳文件大小的数组
                    fis.read(content);//将文件内容读入数组
                    }
                }
                catch(FileNotFoundException e){System.out.println(e);}
                catch(IOException e){System.out.println(e);}
                System.out.println(Arrays.toString(content));//打印数组内容
            }
    

    6.重点考核:使用异常改进你的购物车系统(未提交,得分不超过6分)

    举至少两个例子说明你是如何使用异常机制让你的程序变得更健壮。
    说明要包含2个部分:1. 问题说明(哪里会碰到异常)。2.解决方案(关键代码)

    3. 码云上代码提交记录

    题目集:异常

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    4. 课外阅读

    Best Practices for Exception Handling
    Exception-Handling Antipatterns Blog
    The exceptions debate

  • 相关阅读:
    Unicode详解
    VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
    关于MFC下检查和消除内存泄露的技巧
    ASCII 、GB2312、GBK、GB18030、unicode、UTF8字符集编码详解
    A note from UrlEscape Function
    Unicode和UTF8之间的转换详解
    Base64编码
    全面解读WM_NOTIFY
    关于URL编码
    URL的#号
  • 原文地址:https://www.cnblogs.com/wuling15/p/6729386.html
Copyright © 2011-2022 走看看