1. 本周学习总结

2. 书

面作业

本次PTA作业题集异常

  1. 常用异常
    题目5-1
    1.1 截图你的提交结果(出现学号)
    1.2 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?                                                                                                                                                    答:自己以前编写的代码经常出现异常就是数组越界,无需使用try-catch进行捕获处理,我们编写代码时应避免下标越界。
    1.3 什么样的异常要求用户一定要使用捕获处理?                                                                                                                                                                                                  答:除了`Error`与`RuntimeException`及其子类的以外的都属于`Checked Exception`,需要用`try-catch`捕获来处理。
  2. 处理异常使你的程序更加健壮
    题目5-2
    2.1 截图你的提交结果(出现学号)                                                                                                                                                                                                                   
    2.2 实验总结
  3. throw与throws
    题目5-3
    3.1 截图你的提交结果(出现学号)
    3.2 阅读Integer.parsetInt源代码,结合3.1说说抛出异常时需要传递给调用者一些什么信息?
  4. 函数题
    题目4-1(多种异常的捕获)
    3.1 截图你的提交结果(出现学号)
    3.2 一个try块中如果可能抛出多种异常,捕获时需要注意些什么?
  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 {
    // TODO Auto-generated method stub
    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){
    System.out.println(e);
    }
    finally{
    if(fis!=null){
    fis.close();
    }
    }
    }

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

    public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    byte[] content = null;
    try(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));//打印数组内容
    }
    catch(IOException e){
    System.out.println(e);
    } }
  6. 重点考核:使用异常改进你的购物车系统(未提交,得分不超过6分)
    举至少两个例子说明你是如何使用异常处理机制让你的程序变得更健壮。
    说明要包含2个部分:1. 问题说明(哪里会碰到异常)。2.解决方案(关键代码)                                                                                                                                                             答:
    (1)问题说明:当浏览到喜欢的商品想添加入购物车时,如果该商品售完,应该捕获异常,并说明商品已售完
    解决方案:ArrayList<Product> prolist = new ArrayList<Product>();
    public void addpro(Product pro){
    try{
    prolist.add(pro);
    }catch(NullPointerException e){
    System.out.println("None of the Product?");
    }
    }
    (2)问题说明:输入选择添加商品的序号时当输入为字符串时,需要抛出输入格需要对输入的格式进行异常的捕获
    解决方案:
    System.out.println(Arrays.toString(p));
    System.out.println("选择添加商品序号:");
    try{
    switch (sc.nextInt()) {
    case 1: {
    cart.addpro(p[0]); }
    case 2: {
    cart.addpro(p[1]);
    break;
    }
    case 3: {
    cart.addpro(p[2]);
    break;
    }
    }
    menu(cart, p);
    }catch(NumberFormatException e){
    menu(cart,p);
    }

3. 码云上代码提交记录

3.1. 码云代码提交记录

最新文章

  1. 2016 Multi-University Training Contest 1 G. Rigid Frameworks
  2. [深度学习大讲堂]从NNVM看2016年深度学习框架发展趋势
  3. 14 接口-interface的定义与实现
  4. 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
  5. ajax连接数据库并操作数据库
  6. 编译安装-MySQL5.5
  7. Linux下的C高级编程---学习
  8. Hibernate 缓存机制(转)
  9. Oracle SQL in 超过1000 的解决方案
  10. 关于CGI、FastCGI和PHP-FPM的关系
  11. sql第二天
  12. C语言-结构体
  13. 使用export/import导出和导入docker容器
  14. [CTSC2018]暴力写挂——边分树合并
  15. Wordpress 更新时 不输入ftp相关信息的方法
  16. Tensorflow手写数字识别---MNIST
  17. 连接ORACLE数据库,是不是必须要安装oracle客户端的运行时
  18. LeetCode第[14]题(Java): Longest Common Prefix
  19. [EffectiveC++]item31:将文件间的编译依存关系降至最低
  20. css li 间隙

热门文章

  1. 2017多校第9场 HDU 6170 Two strings DP
  2. PHP学习之旅——PHP环境搭建
  3. eclipse导入SVN上的Maven多模块项目
  4. Swagger
  5. 博文Contents&lt;1--到450—&gt;
  6. 前后端分离(手)-- 使用mock.js(好样的)
  7. Java数组笔记
  8. [知了堂学习笔记]_JSON数据操作第1讲(初识JSON)
  9. Python学习笔记4
  10. django框架(Model)