当前位置: 首页 > news >正文

201621123075作业10-异常

1. 本周学习总结

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

  • Thread类(线程类)和Runnalble接口
  • 可以用Lambda改写简化任务
  • 线程的几种状态:New,Runnable、Running、阻塞、Dead
  • 用synchronized共享资源
  • 内部锁
  • 合作解决方案:wait,notify、synchronized

2. 书面作业

本次PTA作业题集异常

1. 常用异常

结1合题集题目7-1回答
1.1 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?

  • 有时候定义了数组大小却使用时超出数组的范围;输入的数据类型和定义的数据类型不一样;有时候引用了空指针
  • 不需要。原因:Unchecked Excption不需要捕获
  • 自己编写代码的时候就需要考虑到这些问题,比如先检查指针是否为空,自己注意数组的大小。必要
    1.2 什么样的异常要求用户一定要使用捕获处理?
    Checked Excption一定需要使用捕获处理,即除了error和runtimExcption以外的类

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

题集题目7-2
2.1 实验总结。并回答:怎么样才能让你的程序更加健壮?

  • 实验总结:使用 Integer.parseInt()对输入的内容进行处理,有异常则捕获输出异常
  • 对程序有可能出现异常进行try-catch捕获异常

    3. throw与throws

题集题目7-3
阅读Integer.parsetInt源代码
3.1 Integer.parsetInt一开始就有大量的抛出异常的代码,这种做法有什么好处?
1120964-20171125133509375-987015295.png
可以告诉使用这个函数的人错误在哪里,使程序更加健壮。
3.2 结合自己编写的程序与3.1,分析自己编写的方法抛出异常时一般需要传递给调用者一些什么信息?

  • 让调用者了解异常的信息,如本题,是出现begin>=end,begin<0还是end>arr.length的异常信息

    4. 用异常改进ArrayIntegerStack

题集题目6-3
4.1 结合6-3代码,回答使用抛出异常的方式代表程序运行时出错有什么好处?比单纯的返回错误值,有何优点?

  • 出错的时候直接就抛出异常,告诉我们错误的信息,这样方便修改使用
    4.2 如果一个方法内部的内码抛出的是RuntimeException类型的异常,那么方法声明是否应该使用throws关键字,如果使用throws关键字声明该方法抛出的异常,能给我们带来什么好处吗?
  • 不一定需要使用throws关键字
  • throws可以不处理异常而交给处理异常的方法

    5. 函数题-多种异常的捕获

题集题目6-1
5.1 结合6-1代码,回答:一个try块中如果可能抛出多种异常,且异常之间可能有继承关系,捕获时需要注意些什么?

  • 注意继承关系,先捕获子类
    5.2 一个try块中如果可能抛出多种异常,使用Java8的多重异常捕获语法需要注意些什么?
  • 注意捕获的顺序

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

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));//打印数组内容
6.1 改正代码,并增加如下功能。当找不到文件时,需提示用户找不到文件xxx,请重新输入文件名,然后尝试重新打开。 如果是其他异常则提示打开或读取文件失败!。
注1:里面有多个方法均可能抛出异常。
功能2:需要添加finally关闭文件。无论上面的代码是否产生异常,总要提示关闭文件ing。如果关闭文件失败,提示关闭文件失败!
1120964-20171125154134031-1422406072.png

6.2 结合题集6-2代码,要将什么样操作放在finally块?为什么?使用finally关闭资源需要注意一些什么?

  • 文件资源的关闭,因为finall总会被执行。
  • finally中也有可能出现异常,这时也可以继续try-catch
    6.3 使用Java7中的try-with-resources来改写上述代码实现自动关闭资源。简述这种方法有何好处?
    1120964-20171125155154062-543912770.png
    没有finally语句块了,系统帮我们执行了资源释放。

    7. 面向对象设计作业-图书馆管理系统(分组完成,每组不超过3个同学)

登录lib.jmu.edu.cn,对图书进行搜索。然后登录图书馆信息系统,查看我的图书馆。如果让你实现一个图书借阅系统,尝试使用面向对象建模。
7.1 该系统的使用者有谁?
学生
7.2 主要功能模块(不要太多)及每个模块的负责人。下周每个人要提交自己负责的模块代码及运行视频。
徐建民:图书借阅、查找图书
冯一:用户登录、借阅情况查询
7.3 该系统的主要的类设计及类图(可用)
1120964-20171125185854406-587170542.png
暂时构思了这些
7.4 你准备如何存储图书信息、解决信息、读者信息等。
初步构思是map来存储图书信息,而读者信息采用Set集合的方式

8. 选做:使用异常改进你的购物车系统

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

9. 选做:使用静态代码扫描工具 扫描自己的购物车代码

8.1 分析自己代码中在规范方面出现的问题。
8.2 思考如何解决这些问题。**

3.码云及PTA

题目集:异常

3.1. 码云代码提交记录

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

3.2 截图PTA题集完成情况图

需要有两张图(1. 排名图。2.PTA提交列表图)
1120964-20171125190540484-1897837970.png
1120964-20171125190600453-1639472580.png

3.3 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。

周次总代码量新增代码量总文件数新增文件数
10000
226526599
3326618-1
40000
51871876-2
62092260
7174-354-2
81922240
9201951
1037117061
11297-74104

1120964-20171125190321250-360771409.png

转载于:https://www.cnblogs.com/xjm123456/p/7892288.html

相关文章:

  • 深入Atlas系列:Web Sevices Access in Atlas(7) - RTM中的客户端支持
  • tomcat7配合redis实现session共享
  • KeyPass密码管理软件使用说明
  • 禁止一个指定的程序运行
  • Linux 系统如何在开机时修改root密码
  • 论秋招中的排序(排序法汇总-------上篇)
  • Anaconda 安装tensorflow(GPU)
  • sudo的用法记录
  • 查看文件源代码功能实现
  • chomperwu
  • 在SpringMVC中使用拦截器(interceptor)拦截CSRF攻击
  • 一、网络的基本概念
  • 利用LVS-NAT和DR模型分别负载均衡一个php应用
  • VII Python(9)socket编程
  • zookeeper系列(七)实战分布式命名服务
  • ----------
  • .pyc 想到的一些问题
  • 2017-08-04 前端日报
  • Java比较器对数组,集合排序
  • js面向对象
  • Mybatis初体验
  • MySQL几个简单SQL的优化
  • PHP的Ev教程三(Periodic watcher)
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Rancher如何对接Ceph-RBD块存储
  • 半理解系列--Promise的进化史
  • 第十八天-企业应用架构模式-基本模式
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 理解在java “”i=i++;”所发生的事情
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端
  • 限制Java线程池运行线程以及等待线程数量的策略
  • FaaS 的简单实践
  • 阿里云重庆大学大数据训练营落地分享
  • 大数据全解:定义、价值及挑战
  • 如何在招聘中考核.NET架构师
  • ​VRRP 虚拟路由冗余协议(华为)
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #LLM入门|Prompt#3.3_存储_Memory
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (02)Hive SQL编译成MapReduce任务的过程
  • (4)(4.6) Triducer
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (三)c52学习之旅-点亮LED灯
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .jks文件(JAVA KeyStore)
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net 生成二级域名
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 的字符串暂存池
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换