异常(Exception)
• 任何一种语言设计的程序在运行时都会出错:除数 为零、数组下标越界、文件不存在、内存不足等。
传统的程序设计思想: 从键盘上读入一个int数据。 ……. int j; sacnf(“%d” , &j); …… 如果用户不输入int数据呢? 系统可能会终止程序的
运行。
int j, k=1; k--; …… j=50/k; …… 会引起除法错的错误,系统会终止程序的运行 改进: if(k!=0){
– 运行异常:指由程序运行环境问题造成的程序 异常终止,如打开不存在的文件进行读操作、 程序执行了除以0的操作。
– (可恢复)的Java运行时错误称为异常。
• Java异常是一个描述在代码段中发生的异常 (也就是出错)情况的对象。
• 当异常情况发生,一个代表该异常的对象被创 建并且在导致该错误的方法中被引发 (throw)。该方法可以选择自己处理异常或 传递该异常。
• The resulting code is clear, easy to read, and easy to maintain.
• Java的异常处理机制
– 能够把程序的正常处理逻辑和异常处理逻辑分 开表示,使得程序的异常处理结构比较清晰。 即我们尝试着去做一些事情,对于程序运行可 能发生的每一个错误,我们都有一个相应的代 码块去处理它。
• JVM抛出异常通知应用程序发生了错误,目的是为了 给应用程序提供从问题中恢复的机会。
生成的异常对象 将传递给java运 行时系统,异常 的产生和提交过 程称为抛出异常
Java异常处理通过5个关键字控制:
• try、catch、throw、throws和 finally。
• 下面讲述它们如何工作的。程序声明了你想要的 异常监控包含在一个try块中。如果在try块中发生 异常,它被抛出。你的代码可以捕捉这个异常 (用catch)并且用某种合理的方法处理该异常。 系统产生的异常被Java运行时系统自动引发。手 动引发一个异常,用关键字throw。任何被引发方 法的异常都必须通过throws子句定义。任何在方 法返回前绝对被执行的代码被放置在finally块中。