【java学习】异常
来源:互联网 发布:逻辑思维和编程 编辑:程序博客网 时间:2024/06/06 03:08
1,概念
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。
1)场景
违反语义规则包括2种情况:
①JAVA类库内置的语义检查
例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。
②JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。
所有的异常都是java.lang.Thowable的子类。
2)好的习惯
使用finally代码块:定义一定执行的代码。通常用于关闭资源。如:数据库关闭。
2,Throwable
1)Error与Exception区别
都是Throwable的子类。
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
Error表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。
2)检查异常
编译器要求必须处置的异常。
除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。
特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
注意:.try{}catch{}会增加额外的开销。
3)非检查异常
编译器不要求处置的异常。
包括运行时异常(RuntimeException与其子类)和错误(Error)。
3,crash上传到服务器
通过设置CrashHandler来监视应用的crash信息。
当程序crash时会调用CrashHandler的uncaughtException方法。在这个方法中获取crash信息并上传到服务器。
4,其他问题
1)方法数越界
问题:
Android的限制:一个应用的方法数不能超过65536,否则会出现编译错误,程序无法成功安装到手机上。
解决方案一:multidex方案
将一个dex文件拆分为多个dex文件来避免单个dex文件方法数越界的问题。
解决方案二:动态加载。
将部分代码打包到一个单独的dex文件中,并在程序运行时根据需要动态加载dex。此方案实现了程序按需加载,同时提供了应用按模块更新的可能性。
- JAVA异常学习FAQ
- JAVA异常学习笔记
- JAVA异常学习FAQ
- java异常学习
- Java 异常学习
- JAVA异常学习整理
- java异常学习一
- java学习笔记---异常
- JAVA学习十五:异常
- Java学习-异常
- JAVA学习:异常
- JAVA学习笔记-异常
- java学习:异常
- java基础学习-异常
- JAVA学习--异常Exception
- Java学习笔记-异常
- 学习笔记-JAVA-异常
- Java异常学习笔记
- C语言学习知识点(二):define和inline
- 图解设计模式
- C语言回调函数用法示例
- HDUOJ 2047
- for循环
- 【java学习】异常
- [VIJOS1456]最小总代价
- 精品绘画在线学习平台轻微课教程目录
- 正则表达式自我复习
- HTML03-表单
- Java递归实现整数各位求和
- HDU
- docker:搭建单机redis主从集群
- C语言之贪心算法(背包问题)