java异常处理机制原理
发布于:2019-08-28   作者:admin   浏览:527次

  异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序,面对异常该怎么办呢?通常情况下,java培训会怎么样处理呢?下面小编来为大家介绍一下吧。

java异常处理机制原理

  Java编程语言使用异常处理机制为程序提供了错误处理的能力异常处理机制抛抓模型

  运行的代码先抛出异常:放在try{}块中

  然后捕获抓取异常:catch(异常类型异常对象)

  最后再进行异常处理:catch{}块中进行处理

  Java异常处理机制

  Java中如何进行异常处理

  Java的异常处理是通过5个关键字来实现的:

  try执行可能产生、catch捕获异常、finally无论是否发生异常,代码总能执行、throw手动/显式、throws抛出异常

  示例:

  publicvoidmethod(){

  try{

  //代码段1

  //产生异常的代码段2

  //代码段3

  }catch(异常类型ex){

  //对异常进行处理的代码段4

  }//

  代码段5

  }finally{

  //无论是否有异常都会执行的代码段6

  }

  try-catch异常处理流程

  异常是一种特殊的对象,类型为java.lang.Exception或其子类发生异常printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程

  java.util.InputMismatchException//异常类型

  atjava.util.Scanner.throwFor(Scanner.java:840)//异常堆栈信息

  atjava.util.Scanner.next(Scanner.java:1461)//在此方法中抛出了异常

  atjava.util.Scanner.nextInt(Scanner.java:2091)

  atjava.util.Scanner.nextInt(Scanner.java:2050)

  atcn.jbit.exception.Test3.main(Test3.java:15)//出现异常的位置

  在catch块中处理异常,可以加入用户自定义处理信息,通过调用异常对象的方法输出异常信息:

  e.printStackTrace();

  System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为零。");

  voidprintStackTrace()输出异常的堆栈信息

  StringgetMessage()返回异常信息描述字符串,是printStackTrace()输出信息的一部分

  在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行

  注意:如果代码块中加入了System.exit(1);

  强制终止程序执行语句,finally块不会执行

  publicclassTest4{

  publicstaticvoidmain(String[]args){

  try{

  Scannerin=newScanner(System.in);

  System.out.print("请输入被除数:");

  intnum1=in.nextInt();

  System.out.print("请输入除数:");

  intnum2=in.nextInt();

  System.out.println(String.format("%d/%d=%d",

  num1,num2,num1/num2));

  }catch(Exceptione){

  System.err.println(“出现错误:被除数和除数必须是整数,"

  +"除数不能为零。");

  System.out.println(e.getMessage());

  }finally{

  System.out.println("感谢使用本程序!");

  }

  }

  }

  程序中预先想好了对付异常的处理办法,如果程序运行异常!则开始对异常进行处理,处理完毕,程序继续运行,这就是java培训介绍的java异常处理机制的原理。