标签:str error 描述 因此 err 软件工程师 lan 结构 并且
- 异常处理: |
1.错误和异常都是对象,代表非正常情况或无效处理。
2.常见的异常问题:
- 试图做除以0的操作。
- 数组索引越界。
- 找不到指定的文件。
- 不能正常完成被请求的I/O操作。
- 使用了空引用。
- 执行的操作违反了某种安全规则。
3.处理异常的三种方法
- 根本不处理异常。
- 当异常发生时处理异常。
- 在程序的某个位置集中处理异常。
- 未捕获的异常: |
1.异常抛出时所输出的信息,提供了方法调用堆栈踪迹。
2.如果程序中不处理异常,则程序将非正常的终止运行,并产生关于描述在何处发生什么异常的信息。第一行异常信息表明抛出的是什么异常,并提供了抛出该异常的原因。其他行的信息是方法调用踪迹信息,指明异常在何处发生。通过调用被抛出异常类的方法,也可以获得调用堆栈踪迹。getMessage方法返回一个字符串,解释异常抛出的原因;printStackTrace方法输出调用堆栈踪迹信息。
- try-catch语句: |
1.ry-catch语句用来标志可能抛出异常的语句块,catch子句跟在try语句块后,用于定义如何处理一种指定的异常。
2.try { 语句块 } catch(类型名 标识符) { 语句块 }
3.执行try语句块时,如果没有异常抛出,将继续执行try-catch结构语句后的语句,这是正常情况执行流程。
4.如果try语句块执行的任何位置抛出了异常,并且存在catch子句,则控制立即转移到相应的catch子句处理异常,即控制转移到第一个与抛出异常相匹配的catch子句执行,执行完之后,跳出try-catch语句结构继续执行。
- finally子句: |
- 异常的传递: |
- 异常类参次结构: |
1.定义各种的类由继承关系关联在一起。
Throwable是Error类和Exception类的父类。许多异常的类型都是由Exception
类派生,而在这些类中也有许多子类。
虽然这些高层的类定义在java.lang包里,但定义各种异常的子类却分散定义在其他几个包中,继承关系可以跨包越界。
2.【自定义异常】:我们可以从Exception类或它的后代类派生一个新类,定义自己的异常,选择什么类作为父类由新异常所代表的问题和条件决定。
3.【可检测异常和不可检测异常】:Java中唯一不能检测的异常是RuntimeException类的对象或该类的后代类服务对象。所有其他的异常都是可检测异常。
可检测异常:必须由方法捕获,或者必须在可能抛出或传递异常方法的throws子句中列出来。
在方法定义的声明头中加throws子句就明确了该方法在异常发生时将抛出异常或者传递异常。main方法之所以需要throws子句,是因为它所抛出的异常类由由Exception类派生,从而使得它的子类是一个可检测异常。
不可检测异常:无需throws子句。
- I/O(输入/输出)异常: |
1.标准I/O流有三种:
2.| 标准I/O流 | 说明 |
| -------- | :----------------:|
|System.in |标准输入流|
|System.out |标准输出流|
|System.err |标准错误流(输出错误信息)|
- 递归思想: |
1.递归是一种方法能够调用自己的编程技术,掌握递归编程的关键是能以递归的思想考虑问题。
- 无穷递归和有穷递归: |
- 递归编程: |
- 直接递归和间接递归: |
- 递归应用: |
1: 使用递归要注意的有两点:
1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口. |
2:递归分为两个阶段:
1)递推:把复杂的问题的求解推到比原问题简单一些的问题的求解; 2)回归:当获得最简单的情况后,逐步返回,依次得到复杂的解. |
迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B.
递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出. |
区别 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件![](https://images2018.cnblogs.com/blog/1333119/201805/1333119-20180517191455594-1618495632.jpg)
|
在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)。 |
分析:异常传播意味着一个异常被匹配的catch子句在当前try块级别,如果没有匹配,然后在下一个封闭try块级别,等等,直到异常已经被匹配的条款或异常的主程序和被Java虚拟机。
分析:一个BufferedReader对象必须用Reader对象构建。系统。in是一个输入流对象。为了使用上述定义,必须将BufferedReader构造函数中的对象更改为(新的InputStreamReader(System.in))。一份法律声明。
完成程序设计项目:至少完成PP11.1、PP11.2、PP12.1、PP12.9
概念很多,嘚仔细看,有很多细节,和前面的章节联系紧密。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 95/95 | 1/1 | 18/18 | |
第二周 | 515/620 | 1/2 | 22/40 | |
第三周 | 290/910 | 1/3 | 20/60 | |
第四周 | 1741/2651 | 1/4 | 30/84 | |
第五周 | 579/3230 | 1/5 | 20/104 | |
第六周 | 599/3829 | 2/8 | 18/122 | |
第七周 | 732/4561 | 2/9 | 24/146 | |
第八周 | 1354/5915 | 2/11 | 30/176 | |
第九周 | 不知为啥,代码无缘无故少了300行,我现在很迷 |
计划学习时间:30小时
实际学习时间:30小时
改进情况:无
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
20172327 2017-2018-2 《程序设计与数据结构》第十周学习总结
标签:str error 描述 因此 err 软件工程师 lan 结构 并且
原文地址:https://www.cnblogs.com/mrf1209/p/9064940.html