Java教程 – Java异常
异常是在运行时在代码序列中出现的异常状况。例如,读取一个不存在的文件。
Java异常是描述异常条件的对象发生在一段代码中。
关键词
Java异常处理通过五个关键字管理: try,catch,throw,throws和finally。
try block包含要监视的程序语句异常。
如果在块中发生异常,则抛出异常。
catch 语句可以捕获异常并以合理的方式处理它。
要手动抛出异常,请使用关键字throw。
任何抛出的异常一个方法必须由一个 throws 子句指定。
任何代码绝对必须是在try块完成之后执行的命令被放在 finally 块中。
语法
要处理一个异常,我们把可能有的代码在try … catch语句中的异常。
try {
// block of code to monitor for errors
}
catch (ExceptionType1 exOb) {
// exception handler for ExceptionType1
}
catch (ExceptionType2 exOb) {
// exception handler for ExceptionType2
}
可能有异常的程序语句包含在 try 块中。异常处理程序使用 catch 语句进行编码。
这里, ExceptionType 是发生的异常的类型。
例子
在try块和catch子句中封装要监视的代码。
下面的程序包括一个try块和一个catch子句处理由除法生成的ArithmeticException错误:
public class Main {
public static void main(String args[]) {
int d, a;
try { // monitor a block of code.
d = 0;
a = 42 / d;
System.out.println("This will not be printed.");
} catch (ArithmeticException e) { // catch divide-by-zero error
System.out.println("Division by zero.");
}
System.out.println("After catch statement.");
}
}
此程序生成以下输出:
例2
一旦抛出异常,程序控制就会从try块转移到catch块中。执行从未从catch返回到try块。
以下代码处理异常并继续。
import java.util.Random;
public class Main {
public static void main(String args[]) {
int a = 0, b = 0, c = 0;
Random r = new Random();
for (int i = 0; i < 32000; i++) {
try {
b = r.nextInt();
c = r.nextInt();
a = 12345 / (b / c);
} catch (ArithmeticException e) {
System.out.println("Division by zero.");
a = 0; // set a to zero and continue
}
System.out.println("a: " + a);
}
}
}
上面的代码生成以下结果。


国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













