首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

深入【Java】底层细节知识点(9)异常和错误

深入【Java】底层细节知识点(9)异常和错误



  • 异常
    • 异常即exception
    • 异常:可以预知、可以通过修改程序来弥补”错误”,可避免的
  • 错误
    • 错误:error
    • 错误:无法预知的,系统级别的,程序员修改程序是无法修复的;例如:系统宕机,JVM挂掉了

      • 粉红色的是编译时异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
      • 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除…
      • 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
    常见的异常总结:
    • 1、java.lang.NullPointerException(空指针异常)
        调用了未经初始化的对象或者是不存在的对象
    • 2、java.lang.ClassNotFoundException
        指定的类不存在
    • 3、java.lang.NumberFormatException
      字符串转换为数字异常
    • 4、java.lang.IndexOutOfBoundsException
      数组下标越界异常
    • 5、 java.lang.ArithmeticException
      数学运算异常
    • 6、 java.lang.ClassCastException
      数据类型转换异常
    • 7、java.lang.FileNotFoundException
      文件未找到异常
    • 8、java.lang.IllegalArgumentException
      方法的参数错误
    • 9、 java.lang.NoSuchMethodException
      方法不存在异常
    • 10、java.lang.NoClassDefFoundException
      未找到类定义错误
    违背安全原则异常:SecturityException
    操作数据库异常:SQLException
    输入输出异常:IOException
    通信异常:SocketException
  • 异常的处理
    • 功能抛出几个异常,功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性,抛几个就处理几个。
      特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在下面。
  • throws 和throw
    • throws 方法声明时使用,表示该方法可能产生的异常,抛出,谁调用谁捕获处理,throws用在函数上。
    • throw方法体中使用,表示抛出一个具体的异常对象,谁调用谁捕获处理,throw用在函数内。
    • catch中存在return,此时finally中是否被执行?执行。但finally外边不执行。(其实就不能有语句)
返回列表