栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

异常以及常见的异常面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

异常以及常见的异常面试题

1.异常
   1)概念:完成一个指定的任务,除正常执行该任务以外的所有情况。
   2)异常的处理体系
     A.产生异常:
                  语法:  throw new 异常类(异常信息);
        throw new Exception("输入的年龄不是数字");
     B.处理异常
 1)抛出异常
                    语法: 方法声明(参数列表) throws 异常类名,异常类名{
                    
               }
                    用法:当异常没有替代方案时。(甩锅)   
        
2)捕捉异常:
                    语法: 
                try{
                   //发生异常的代码
                }catch(异常类 e){
                  //替代方案
                }catch(异常类 e){
                  //替代方案
                }finally{
                  //最终要执行的
                }
                    用法:当异常发生时,有替代方案时。
3)try...catch用法  
        try{
           //发生异常的代码
        }catch(异常类1 e){
          //替代方案
        }catch(异常类2 e){
          //替代方案
        }finally{
          //最终要执行的
        }
        A.try不可以省略  catch可以0或多个 finally可以省略
        B.当try中的代码发生异常时,以后所有代码都不会被执行。而是执行进入对应catch块中
        C.finally总是会被执行  一般try..catch块中最后被执行。
        D.多个catch块中,如果catch中的类存在继承关系 那么子类必须写在父类前面
          try{
                Class.forName("").newInstance();
          }catch(ClassNotFoundException e){
          }catch(Exception e){
          } 
   
4)异常体系结构
       Throwable    
         |-Error 错误  不可恢复的
             IOError,OutOfMemoryError  StackOverflowError ThreadDeath
         |-Exception 异常 由于软件导致问题 可以恢复有替代方案。
              check异常:编译时异常 在编译时,检查异常是否处理
              ClassNotFoundException   IOException
              ParseException InterruptedException
              IllegalAccessException NoSuchFieldException
              NoSuchMethodException  SQLException
              SAXException  XMLParseException
            |-RuntimeException
                               非check异常:运行时异常 在运行时,才会检查的异常
               ArrayIndexOutOfBoundsException StringIndexOutOfBoundsException 
               NullPointerException ArithmeticException 
               BufferOverflowException  ClassCastException
               IllegalArgumentException
 5)自定义异常   
       A)步骤 
          (1)继承Exception或RuntimeException
          (2)定义对应的构造方法
   

常见面试题

1、请说明throws和 throw的区别?

throws:

I-抛出的是在方法体中可能出现的异常,抛给调用处处理|-声明的位置是在方法名之后

throw:

|-抛出的手工实例化的异常对象(我们自己创建的一个异常对象),相当于程序出现了一个异常。

|-声明的位置是在方法体之内

2、请说明Exception和 RuntimeException的区别和关系?

Excetion是 RuntimeException的父类

Exception类型的异常需要强制进行处理,如果不处理编译无法通过。

RuntimeException类型异常叫做运行时异常不需要强制处理

3、请说明Error和 Exception的区别和联系?

Error和 Exception都是 Throwable 的子类
Excption是异常,在程序运行期间出现的,是可以通过代码进行处理的( try捕获或者抛出)

Error是错误,是在程序运行之前出现的,比如无加载主类,是不能通过程序代码进行处理的(在编译期间就出现的错误)


4、  public int a(){
           int a = 10;
           try{
             return a++;
           }finally{
             return a++;
           }
        }
       a:12
       函数返回值  11   

5、 public int a(){
           int a = 10;
           try{
             return a++;
           }finally{
              a++;
           }
        }   
       a:12
       函数返回值 10  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号