JAVA学习笔记整理四(异常处理)
2016-05-30 20:52
666 查看
异常处理的格式
异常:异常是导致程序中断运行的一种指令流,当异常发生时,如果没有进行良好的处理,则程序将会中断执行。try{
} catch (异常类 异常对象) {
}finally{
}
不管是否出现异常,都会执行finally语句中的代码,但是finally语句可省略(此语句块的编写中尽量不出现throw与return这样的语句,以避免不必要的问题出现)。
异常的分类
异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是异常(不能直接抛出Throwable类,最大只能抛出Exception类):Exception:一般表示的是程序中出现的问题,可以直接使用try…catch进行处理
Error:由Java虚拟机生成并抛出,是不指望程序能从其恢复过来的灾难性故障。所以程序员不需要捕捉各处理它们
抛出异常
一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫抛出异常方法:在产生异常的方法名后面加上要抛出(throws)的异常的列表
(public int div(int I,int j) throwsException{})
实例应用
public class ExceptionDemo { public static void main(String[] args) { Math math = new Math(); try { System.out.println("除法操作" + math.div(10, 0)); } catch (Exception e) {//进行异常的捕获 System.out.println("异常产生:" + e);//处理异常 } } } class Math { public int div(int i, int j) throws Exception{//方法可以不处理异常 System.out.println("======计算开始====="); int temp = 0; try { temp = i / j; } catch (Exception e) {//捕获异常 throw e;//不处理,把异常交给被调用处 } finally {//不管如何都执行 System.out.println("======计算结束====="); } return temp; } } //======计算开始===== //======计算结束===== //异常产生:java.lang.ArithmeticException: / by zero
执行过程如下:
Exception类与RuntimeException类
Exception:在程序中必须使用try…catch进行处理RuntimeException:可以不使用try…catch进行处理,如果有异常产生,将由JVM进行处理
断言
assert boolean 表达式 (:详细的信息);如果表达式的结果为true,则什么错误信息都不会提示;如果为false,则会提示错误信息,如果没有声明详细的信息描述,则系统会使用默认的错误信息提示方式
public class AssertDemo { public static void main(String[] args) { int x[] = { 1, 2, 3 }; assert x.length == 0 : "数组长度不为0"; } }
要想使断言起作用,在JAVA运行时,应加入“-enableassertions”参数,也可简写为“-ea”
编译程序:javac AssertDemo.java
验证程序:java –ea AssertDemo
相关文章推荐
- 一些错误和解决办法--01
- JAVA学习笔记整理三(抽象类、接口、匿名类)
- java的动态代理机制详解 动态代理类
- spring中AOP——注解实现
- Java 内省机制
- Spring.No1 ----整理---Spring学习的第一课
- Java性能提高小常识
- 第一章 JAVA初步
- java的并发测试
- java34: 流
- maven整合spring+springMvc+Mybatis+Mysql
- 【Java Learning】重载、多态和动态绑定——Overloading、Ploymorphism&Dynamic binding
- Logistic Regression Java程序
- MyEclipse10配置自动补全/字体大小/行号/背景颜色
- Java代码实现AP向CP侧发送AT指令
- 搜集整理java中GC的理解
- java 基于jxl解析xls以及解决丢失精度问题
- springmvc中@PathVariable和@RequestParam的区别
- eclipse的版本
- 爱奇艺视频解析(Java代码)(16.5.30更新)