前言
一、今日回顾
1.《高等数学》:中值定理剩余习题
2.阅读:《优势成长》,还是有许多感悟的,如今精力不够,明天再输出吧!
3.英语:单词120个
二、编程的那些事
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. -托尼·霍尔
这段英文翻译如下:
构建软件设计有两种方法:一种方法是让它变得如此简单,以至于明显没有缺陷,另一种方法是使它变得如此复杂以至于没有明显的缺陷。
确实,如果我们编程的代码不需要做任何的调试,不存在任何的Bug,那一件非常美妙的事。但在事实面前,托尼·霍尔形象的说明了我们软件开发中有着不可避免的环节。缺陷,Bug,Crash是一个程序员不可逾越的痛。消除bug,很需要积累经验,既然如此,那就先了解bug的原理,因为只有了解了原理,才能对bug做出分析。
java异常类结构
android开发与java有关,先让我们了解一下java异常。基类为Throwable,Error,和Exception继承Throwable。RuntimeException和IOException等继承Exception,NullPointerException继承RuntimeException。java中,除了Error外,所有的异常类都直接或间接继承自Exception。
java异常分类
非运行时/编译异常(Checked Exception)。在JAVA中,凡是继承自Exception但不是继承自RuntimeException的类都是非运行时异常,称为编译异常。
android异常分类
- java异常。在java中出现未捕获异常。导致程序异常终止退出。即java Exception中的RuntimeException。
- ANR(Application Not Responding)。应用于用户进行交互时,在一定时间(如主线程输入事件为5秒)内没有响应用户的操作,会引发ANR错误,并弹出一个系统提示框,让用户选择继续等待或立即关闭程序。同时会在/data/anr目录下生成trace.txt文件,记录系统产生ANR异常的堆栈和线程信息。
- Native异常。
android异常处理机制
- Checked Exception是在编译阶段被处理的异常,编译器会强制程序处理所有的Checked异常,也就是用try……catch显式捕捉并处理。
- Runtime Exception没有相应的try……catch处理该异常对象,java运行环境将会终止,程序将退出,即程序Crash。针对这类异常。有下面处理方法。