/** * 异常:在程序中导致程序中断运行的一些指令 * 1.受检异常:编译期 * 2.非受检异常:运行期 * 异常处理过程分析: * 1.一旦产生异常,系统会自动产生一个异常类的实例化对象 * 2.此时如果存在对应try语句,则执行,否则程序将退出,并由系统报告错误 * */ public class Main { public static void main(String[] args) { /* try{ //有可能发生异常的代码段 }catch(异常类型对象){ //异常的处理操作 }catch(异常类型对象){ //异常的处理操作 }... finally{ //异常的统一出口 } */ int a = 100; Scanner input = new Scanner(System.in); try{ for(int i=0;i<10;++i){ int b = input.nextInt(); int c = a / b; System.out.println(c); } }catch(ArithmeticException e){ System.out.println("算术运算异常"); e.printStackTrace(); //输出栈中的异常信息 }catch(Exception e){ System.out.println("运算异常"); }finally{ //用途:资源的释放 System.out.println("finally:不管try中的语句是否出现异常都会执行"); } div(10,2); } public static int div(int a,int b){ int res=0; try{ res=a/b; return res; //执行完finally里的东西才执行这句 }catch(ArithmeticException e){ e.printStackTrace(); return 0; }finally{ System.out.println("除法运算结束"); } } }
public class Main { public static int add() throws InputMismatchException{ //抛出,让上级去处理 Scanner input = new Scanner(System.in); try{ int a = input.nextInt(); int b = input.nextInt(); return a+b; }catch(InputMismatchException e){ //throw new InputMismatchException("There is a mistake."); throw e; }finally{ System.out.println("All finished."); } } public static void main(String[] args) { try{ System.out.println(add()); }catch(InputMismatchException e){ //上级来处理 e.printStackTrace(); } } }
时间: 2024-10-12 16:42:24