package com.te.exp;
/**
* 此类用于学习异常
* 异常处理方法
* 1.虚拟机默认处理
* 将异常的名称(类型)异常出现的原因 以及异常出现的位置输出到控制台
* 2.程序员手动处理
* 有两种方案
* 1.try....catch...(捕获异常)
* try...catch格式
* try{
* 可能出现异常代码的代码块1;
* 可能出现异常代码的代码块2;
* 可能出现异常代码的代码块3;
* .........
* }catch(异常类型 变量名){
* 处理异常的代码:
* // 当try中代码出现的异常类型。能在catch中声明异常类型匹配,才会执行catch
* 反之,不会执行
* }
* 2.throws(抛出异常)
*/
import java.util.Scanner;
public class Study_Exception {
public static void main(String[] args) {
// method(); // 使用method方法让异常暴露
// method1();
try {
metod2(); // 使用throws抛出异常
}catch (Exception e){
e.printStackTrace();
System.out.println("请输入正确的整数后计算。。。。。。。。。。。。");
}
}
private static void metod2() throws Exception{
int a = new Scanner(System.in).nextInt();
int b = new Scanner(System.in).nextInt();
System.out.println(a / b);
}
private static void method1() {
try {
int a = new Scanner(System.in).nextInt();
int b = new Scanner(System.in).nextInt();
System.out.println(a / b);
}catch (Exception e){ // 多态:不关心子类的类型,只要是Exception类型的异常,都可以接收
System.out.println("请输入正确的整数后计算。。。。");
}
// }catch (ArithmeticException a){
// System.out.println("除数不能为0");
//
// }
}
private static void method() {
int a = new Scanner(System.in).nextInt();
int b = new Scanner(System.in).nextInt();
System.out.println(a/b);
}
}