• java的异常总结


    异常:在java程序中也出现不正常的情况,这个就叫异常。java是面向对象的语言。任何事物都可以用类来描述,同样异常也是一种事物,java中提供了很多异常类

    很多异常堆积起来叫做异常体系

    Throwable -------------所有异常的父类

             --------------error

             --------------exception

    类的完整的名称: 包名 +类名

    1.toString()//对throwable 的简短描述    类的完整的名称 message的信息也会打印出来

    2.getMessage()  //throwable的详细信息字符串

    3.printStrackTrace  //打印的是异常时栈内存

    Error  错误

    错误一般是java虚拟机或者硬件导致的问题,所以我们一般不会用代码来处理错误

    Exception  所有的异常都继承与Exception

    异常和错误的区别:

    如果程序出现不正常的情况,信息的结尾是以Error就是错误,其他的都是异常

    异常的处理:

    方式1:捕获处理

    捕获处理的格式:

    Try(){

       可能发生的异常的代码

    }catch(捕获的异常的类型  变量名){

    异常的处理

    }

    捕获异常处理的注意点:

    1. 如果try中的代码处理问题之后,会继续执行try-catch以外的代码
    2. Catch中的代码,只有在try中的代码出现异常时才会执行
    3. 一个try中可以跟多个catch块,也就是说一个try可以处理多个异常
    4. Try捕获异常是从小到大来捕获异常的,否则就会报错

    异常捕获到底有什么用?

    目前还看不出用处,在学习javaEE就很有用

    为什么不直接用一个大的异常?

    为了让我们快速的找到错误点

    方式2:抛出处理(throw  throws)

    Throw,throws使用注意点:

    1. Throw关键字是用于方法里面的,throws用于方法的声明上
    2. Throw关键字用于方法内部抛出异常,throws用于方法声明上抛出异常
    3. Throw关键字后面只能有一个异常,throws可以声明多个异常

    抛出异常使用的注意点:

    1. 如果在方法中抛出了一个异常对象,就必须在方法上声明这个异常的抛出
    2. 如果一个方法调用了抛出异常的方法,那么这个调用者就必须处理这个抛出的异常(调用者可以是调用这个方法的方法和jvm虚拟机)
    3. 如果一个方法中抛出了异常,那么throw后面的代码就不会再执行了
    4. 在一种情况下只能抛出一种异常

    什么时候抛出异常?什么时候不抛?

    需要通知你的调用者,你的代码可能存在问题,这个时候就需要抛出异常

    如果你的代码是直接和用户打交道的时候遇到以遇到异常,就需要自己处理

    有时候异常必须声明,有时候可以不声明

    Exception

      --------》运行时异常:抛出运行时异常,是可以不用在方法上声明异常

      -------》编译时异常:抛出编译时异常,方法上必须声明异常,调用者也必须要处理

    如何区分编译时和运行时异常:

    属于运行时异常:是RuntimeException 或者继承与他的子类的都是运行时异常

    属于编译时异常:除了运行时异常,其他的都是编译时异常(最大的异常Exception(异常超类)是编译时异常)

    Finally   块

    Finally 块 和try 一起用

    Finally:无论出了什么问题,finally中的代码块都会执行,除非jvm退出了,代码才不会执行

    Finally 非常适合做资源释放的工作,这样就可以保证我这资源文件在任何时候都可以被释放

    Java中的包:相当于电脑中的文件夹

    包:可以将编译的class文件放入到指定的包中

    定义包:

    Package  关键字定义包

    不同的包中类与类之间的访问注意点:

    1. 类需要用public修饰
    2. 被访问的类要先编译出来
    3. 在其他类中使用其他类需要用到类 的全名

    可以用导包来解决问题3

    导包用关键字:import

    导包格式:

    Import 包名1 . 包名2……类名;

    Import 包名 . *; 直接导入所有

    推荐使用第一种导包方法

    使用包的好处:

    1. 可以防止同名的的类文件的冲突
    2. 使原文件与编译后的文件分离,便于软件的发布

    使用包注意点:

    1. 一个java类中只能定义一个包
    2. 包的定义是类描述的第一个语句
  • 相关阅读:
    SQL Server 错误15401:没有找到Windows NT用户或组‘EMLE\ASPNET’
    使用 TestContext 类
    C# 动态2维数组
    2010年春季 软件测试技术 软件项目管理 实验安排
    代码覆盖率结果:没有为此测试运行启用代码覆盖率
    InternetGetCookie/InternetSetCookie (WinInet) changed with Internet Explorer 7
    C# 替换文本文件中的某一行 (要求此文件存在)
    android 复制 粘贴 功能实现
    java动态代理(JDK和cglib)
    使用ant打web应用更新包
  • 原文地址:https://www.cnblogs.com/li-su-35/p/6090952.html
Copyright © 2020-2023  润新知