• java基础之异常。


    异常:

    (1)异常:异常就是Java程序在运行过程中出现的错误。
    异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。其实就是Java对不正常情况进行描述后的对象体现。

    (2)异常的体系
            Throwable
                |--Error    严重问题,我们不处理。
                |--Exception
                    |--RuntimeException    运行期异常,我们需要修正代码
                    |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过

    (3)异常的处理:
            A:JVM的默认处理
                把异常的名称,原因,位置等信息输出在控制台,但是呢程序不能继续执行了。
            B:自己处理
                a:try...catch...finally
                    自己编写处理代码,后面的程序可以继续执行
                b:throws

                    把自己处理不了的,在方法上声明,告诉调用者,这里有问题

    (4)编译时异常和运行时异常的区别?
    Java中的异常被分为两大类:编译时异常和运行时异常。所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常
    编译时异常
    Java程序必须显示处理,否则程序就会发生错误,无法通过编译
    运行时异常
    无需显示处理,也可以和编译时异常一样处理
    (5)hrowable中的方法
    getMessage()
    获取异常信息,返回字符串。
    printStackTrace()
    获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
    (6)throws和throw的区别?

    throws:
    用在方法声明后面,跟的是异常类名
    可以跟多个异常类名,用逗号隔开
    表示抛出异常,由该方法的调用者来处理
    throws表示出现异常的一种可能性,并不一定会发生这些异常
    throw:
    用在方法体内,跟的是异常对象名
    只能抛出一个异常对象名
    表示抛出异常,由方法体内的语句处理
    throw则是抛出了异常,执行throw则一定抛出了某种异常 
    (7)finally的特点?
    被finally控制的语句体一定会执行
    特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))被finally控制的语句体一定会执行
    finally的作用
    用于释放资源,在IO流操作和数据库操作中会见到
    (8)自定义异常
    继承自Exception
    继承自RuntimeException
    自定义异常类
    基本语法
    public  class 异常类名 extends Exception{
            public 异常类名(String msg){
                super(msg);
         }
     }
    自定义异常类中往往不写其他方法,只重载需要使用的构造方法

    (9)子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
    如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
    如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,

    不能throws。





  • 相关阅读:
    Extjs4.x Ext.tree.Panel基本树控件的使用案例、源码
    Extjs4 autoload和iframe的取舍
    Extjs4 文件目录结构
    IIS7.5 配置MVC3.0 伪静态,不能访问html伪静态页面
    DB2存储过程模版
    C#后台调用跨域MVC服务,带Cookie验证
    基于SenchaTouch项目案例
    EF Code First DataAnnotations
    找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。
    Babylon 3D engine (Silverlight)
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767584.html
Copyright © 2020-2023  润新知