爱问知识人 爱问教育 医院库

JAVA编程中异常问题处理方式的区别和分析是什么呢?

首页

JAVA编程中异常问题处理方式的区别和分析是什么呢?

JAVA编程中异常问题处理方式的区别和分析是什么呢?

提交回答

全部答案

    2017-07-28 06:53:56
  •   
    一、内层方法抛出异常,外层方法捕捉并处理异常:
    public void methodA (){
    try{
    // 调用methodB
    methodB();
    }
    catch(ExceptionType et){
    // 相应处理措施
    }
    }
    public void methodB throws ExceptionType{
    if (condition is true)
    {
    // 相应处理措施
    }
    else
    {
    throw new ExceptionType(argument);
    }
    }
    在这个例子中,方法B的头部中声明了该方法会抛出一个类型为ExceptionType的异常,在方法体中使用throw子句抛出了一个异常,那么该异常被谁捕捉到呢,答案是方法A。
      因为异常抛出后,JVM会顺着该方法的调用栈一层一层的往上找。因为方法A中有一个catch(ExceptionType et),所以被抛出的异常会被捕捉到并处理。 二、方法中自己捕捉,处理异常: public methodA() { try { // 可能产生异常的语句 } catch (ExceptionType et) { // 相应的处理 } } 在这个例子中,方法A使用了try-catch语句块,那么意味着在方法中所产生的ExceptionType类型的异常都会被捕捉到并在方法内处理。
       三、内层方法抛出一个异常,但本身又有try-catch public methodB() throws ExceptionType{ try { // 可能产生异常的语句 } catch (AnotherExceptionType aet) { // 相应处理措施 } } 在这个例子中有两种异常处理情况,抛出异常和捕捉异常,如果在try语句块中产生ExceptionType类型的异常的话,会被抛出。
      如果产生AnotherExceptionType类型的话,则不会被抛出,因为在方法B的头部中并没有声明会抛出该异常。 四、内层方法抛出一个异常,但本身有try-finally public methodB() throws ExceptionType{ try { // 可能产生异常的语句 } finally { // 一定要执行的语句 } } 这个例子与上一个例子很像,不同的是没有catch,但增加了finally。
      它的意思如果方法B中try语句块中如果产生了异常,则抛出由外层方法处理。然后方法B继续执行finally中的语句。

    海***

    2017-07-28 06:53:56

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):