zoukankan      html  css  js  c++  java
  • Exception异常

    异常:
    是什么?是对问题的描述。将问题进行对象的封装。
    ------------
    异常体系:
    Throwable
    |--Error
    |--Exception
    |--RuntimeException

    异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。
    也就是说可以被throw和throws关键字所操作。
    只有异常体系具备这个特点。


    --------------
    throw和throws的用法:

    throw定义在函数内,用于抛出异常对象。
    throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。


    当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,都在编译失败。
    注意,RuntimeException除外。也就说,函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。
    --------------


    如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try。

    异常有两种:
    编译时被检测异常
    该异常在编译时,如果没有处理(没有抛也没有try),编译失败。
    该异常被标识,代表这可以被处理。
    运行时异常(编译时不检测)
    在编译时,不需要处理,编译器不检查。
    该异常的发生,建议不处理,让程序停止。需要对代码进行修正。

    Exceptoin中有一个特殊的子类异常RuntimeException 运行时异常。

    如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。

    如果在函数上声明了该异常。调用者可以不用进行处理。编译一样通过;

    之所以不用在函数声明,是因为不需要让调用者处理。
    当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,
    对代码进行修正。


    自定义异常时:如果该异常的发生,无法在继续进行运算,
    就让自定义异常继承RuntimeException。


    对于异常分两种:
    1,编译时被检测的异常。

    2,编译时不被检测的异常(运行时异常。RuntimeException以及其子类)

    异常在子父类覆盖中的体现;
    1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
    2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
    3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
    如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。

  • 相关阅读:
    使用工具创建Ribbon的按钮
    【20160924】GOCVHelper 图像增强部分(1)
    Xamarin Essentials教程语音播报TextToSpeech
    Xamarin Essentials教程发送邮件Email
    Xamarin SQLite教程数据库访问与生成
    XamarinEssentials教程应用程序信息AppInfo
    XamarinAndroid组件教程RecylerView自定义适配器动画
    Xamarin Essentials教程安全存储SecureStorage
    Xamarin Essentials应用教程文件系统FileSystem
    XamarinAndroid组件教程RecylerView适配器设置动画示例
  • 原文地址:https://www.cnblogs.com/TaoLeonis/p/6517981.html
Copyright © 2011-2022 走看看