package exception;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
// 测试异常处理机制
// 异常的处理机制分为抛出异常和捕获异常。
// 捕获异常: try , catch , finally
// 抛出异常:throw, throws
try {
// 可能产生的异常的代码区,也成为监控区
// try块中放可能发生异常的代码。
// 如果执行完try且不发生异常,则不会执行catch内的内容,跳过catch,继续向下执行
// 如果发生异常,则尝试去匹配catch块。
// 一旦程序出现异常,后面的代码都不会执行
Scanner sc = new Scanner(System.in);
System.out.println("请输入课程代号(1~3之间的数字)");
int numb = sc.nextInt();
// 请输入课程代号(1~3之间的数字)
// d
// java.util.InputMismatchException
// 输入数值错误
// 欢迎提出建议
// over
if (numb == 1 ) {
System.out.println("C语言");
}else if (numb == 2 ) {
System.out.println("Java语言");
}else if (numb == 3 ) {
System.out.println("Python语言");
}else {
System.out.println("超出范围");
}
} catch (Exception e) {
// 捕获并处理try抛出异常类型为Exception的异常
// 每一个catch块用于捕获并处理一个特定的异常,或者这异常类型的子类。Java7中可以将多个异常声明在一个catch中。
// catch后面的括号定义了异常类型和异常参数。如果异常与之匹配且是最先匹配到的,则虚拟机将使用这个catch块来处理异常,执行catch块里面的代码。
// 在catch块中可以使用这个块的异常参数来获取异常的相关信息。异常参数是这个catch块中的局部变量,其它块不能访问。
// 如果try中没有发生异常,则所有的catch块将被忽略。继续向下执行
// 如果try有异常,当发生异常后,try中异常后面的代码不会被执行。
// 如果catch中的异常与之匹配,则会执行catch代码块,并且继续向下执行
// 如果catch中没有与报错信息匹配的异常,此时程序报错,程序停止
// e.printStackTrace():打印报警信息
e.printStackTrace();
System.out.println("输入数值错误");
}finally{
System.out.println("欢迎提出建议");
}
System.out.println("over");
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)