标签:width void text 表达 pac divide 类构造 int 情况下
异常
异常是编写应用程序时,没有代码和语法错误会出现的意外情况,为了使程序出现异常还能按照预定的方式进行处理,必须进行捕获和处理。java提供了专门的异常处理机制。

常见的异常

如图所示,当除数为0时,出现算术错误
当遇到异常时,我们可以使用异常处理代码块。下列逐个介绍。
程序运行时只执行匹配到的第一个catch子块,不可能同时执行两个以上的子块
若没能捕获到异常只能有系统来处理,将出现未处理异常信息
子块顺序只能从小到大排序,最后一个总能捕获Excption。
finally里的代码不管是否发生异常都是要执行
throw语句语法形式如下
throws语句用法
package Yichang;
import java.util.Scanner;
public class Ex1 {
static double divide(double x,double y)throws Exception{
if(y!=0) {return x/y;}
else {
throw new Exception("除数为0无意义");
}
}
public static void main(String[] args) {
try {
double x,y,z;
String str;
Scanner input=new Scanner(System.in);
while(true) {
System.out.println("请输入被除数");
str =input.nextLine();
if(str.equals("")) {break;}
x=Double.parseDouble(str);
System.out.println("请输入除数");
str=input.nextLine();
y=Double.parseDouble(str);
z=divide(x,y);
System.out.printf("相除结果保留两位小数:%.2f\n",z);
}
input.close();
}catch(Exception e) {
System.out.println("异常"+e);
}
finally {
System.out.println("程序结束");
}
}
}
显示异常:除数为0无意义——程序结束
在循环语句中嵌入try-catch代码块,可以使异常处理代码块发生异常时不终止程序运行
如在上述例子中内部的while循环中嵌入try-catch代码块
除异常外,程序不能运行还可能发生了错误(Error)。
断言(Assert)就是宣称条件必须成立。如断言“数必须大于等于零”(条件成立)才能计算平方根。如果false,则发生断言错误(AssertionError)。
默认情况下Java虚拟机会总是关闭断言。需要开启断言在运行命令中加入选项-ea
学习了异常及处理。异常时运行过程中出现了意外,无法常规运行下去,可以使用try-catch-finally捕捉并处理。需要到预先编写的代码中捕捉异常,否则程序就会意外终止。
捕捉异常代码块亦可以嵌套。
异常可以使用throw语句主动精准抛出,出现异常就要及时处理,否则影响程序的运行。也可以把异常转给调用它的方法来处理,这时在方法{}前加throws接受
标签:width void text 表达 pac divide 类构造 int 情况下
原文地址:https://www.cnblogs.com/dedegui/p/10086467.html