1.异常简介

Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类,两大子类分别是Error和Exception。

系统错误由Java虚拟机抛出,用Error类表示。Error类描述的是内部系统错误,例如Java虚拟机崩溃。这种情况仅凭程序自身是无法处理的,在程序中也不会对Error异常进行捕捉和抛出。

异常(Exception)又分为RuntimeException(运行时异常)和CheckedException(检查时异常),两者区别如下:

RuntimeException:程序运行过程中才可能发生的异常。一般为代码的逻辑错误。例如:类型错误转换,数组下标访问越界,空指针异常、找不到指定类等等。

CheckedException:编译期间可以检查到的异常,必须显式的进行处理(捕获或者抛出到上一层)。例如:IOException, FileNotFoundException等等。

2. 异常的处理

常用关键字:try、catch、throw(抛出一个异常,动词)、throws(声明一个方法可能抛出的异常)、finally。

2.1throws(声明异常)

若方法中存在检查时异常,如果不对其捕获,那必须在方法头中显式声明该异常,以便于告知方法调用者此方法有异常,需要进行处理。

在方法中声明一个异常,方法头中使用关键字throws,后面接上要声明的异常。若声明多个异常,则使用逗号分割。

若是父类的方法没有声明异常,则子类继承方法后,也不能声明异常。

2.2  try-catch(捕获异常)

若执行try块的过程中没有发生异常,则跳过catch子句。若是出现异常,try块中剩余语句不再执行。开始逐步检查catch块,判断catch块的异常类实例是否是捕获的异常类型。匹配后执行相应的catch块中的代码。如果异常没有在当前的方法中被捕获,就会被传递给该方法的调用者。这个过程一直重复,直到异常被捕获或被传给main方法(交给JVM来捕获)。

对于try..catch捕获异常的形式来说,对于异常的捕获,可以有多个catch。对于try里面发生的异常,他会根据发生的异常和catch里面的进行匹配(按照catch块从上往下匹配),如果有匹配的catch,它就会忽略掉这个catch后面所有的catch。

如果有finally的话进入到finally里面继续执行。

try  ctach  fianally 中有return 时,会先执行return ,但是不会返回。在执行完 finally 后 进行返回。

return 的是基本类型数据时, fianlly 里面的语句不会影响 return 的值,

return 的是引用类型数据时,此时已经确定了要返回对象的地址(地址一),后面 fianlly 里面的可以通过修改前面地址一中的内容修改返回的内容,

但是如果将对象指向另一个地址(地址二),则不会影响返回的内容。因为返回的对象地址已经确定为地址一,只能通过修改地址一对象的内容修改返回的信息。

java异常体系_Java 异常体系相关推荐

  1. java异常体系_JAVA异常体系结构详解

    一.什么是异常 异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件.(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象.      --百 ...

  2. java异常体系_Java异常体系(Throwable、Error、Exception)

    Java异常体系 java异常体系继承图 Throwable Throwable类是所有异常的父类,常见的子类有两个Error.Exception. Error Error类就是程序运行时候抛出的最严 ...

  3. java异常例子_java 异常的实例详解

    java 异常的实例详解 1.异常的定义:程序在运行时出现不正常情况. 异常的划分: Error:严重的问题,对于error一般不编写针对性的代码对其进行处理. Exception:非严重的问题,对于 ...

  4. java异常 子类_Java异常 Exception类及其子类(实例讲解)

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...

  5. java 异常 规范_java 异常规范

    异常规范 异常介绍 Throwable 所有Exception和Error的父类. Error 致命错误. 项目自身存在问题, 诸如格式有问题, 编译版本不对, 堆栈溢出等, 项目在出现ERROR的情 ...

  6. java exception子类_Java异常 Exception类及其子类(实例讲解)

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...

  7. java异常标记_java异常机制

    ------------------------------------------------------------------下面是一些java异常集---------------------- ...

  8. java 异常练习题_Java 异常(习题)

    异常 Key Point * 异常的概念和分类 * 异常的产生和传递 * 异常的处理 * 自定义异常 练习 1. 填空 Java 中所有的错误都继承自throwable类:在该类的子类中, Error ...

  9. 面试常见java异常题_Java异常面试题(含答案)

    1.Java中异常分为哪两种? 编译时异常 运行时异常 2.异常的处理机制有几种? 异常捕捉:try-catch-finally,异常抛出:throws. 3.如何自定义一个异常 继承一个异常类,通常 ...

  10. java catch自定义异常_java异常类-java自定义异常-嗨客网

    Java异常类教程 我们在 我们可以看到,在 Exception 表示的是程序中出现了问题,可以直接使用 try - catch 来捕获处理.Error 一般值 Java常见异常 类名 描述 IOEx ...

最新文章

  1. 在家想远程公司电脑?Python +微信一键连接
  2. MySQL添加用户、删除用户与授权
  3. spring boot实现软删除
  4. Linux如何修改用户名?
  5. 注入点批量收集工具_如何批量处理短视频,剪辑片头片尾、加图片水印
  6. UI设计素材|如何为数据可视化选择更漂亮的颜色
  7. 滚动图片广告_女排赢球可喜看台马桶广告扎眼 网友:去男足赛场!别在这儿蹭热点...
  8. 自己本地搭建svn仓库_「PHP编程」如何制作自己的Composer包?
  9. 对while((pid = waitpid(-1, stat, WNOHANG)) 0)不懂的地方,现在懂了
  10. C++多态的练习——编写一个计算器项目
  11. 从openjdk.java.net获取OpenJDK8源码并编译(amd64/aarch64/arm64)
  12. python cursor游标_python 使用sqlite需要使用游标cursor?
  13. eclipse插件开发流程
  14. 熟悉Linux基本操作
  15. 3dmax导出fbx模型到unity
  16. 【JavaScript】DOM 操作元素样式和元素类名
  17. 进销存设计中的库存设计
  18. 二次型、特征值/向量、奇异值、特征值、奇异值分解、奇异值分解(SVD)原理与在降维中的应用
  19. mvn 执行 install 或者 compil 错误
  20. 【技巧 二进制分组】bzoj4398: 福慧双修2407: 探险

热门文章

  1. hadoop job 未跑满资源_Hadoop多用户资源管理–Fair Scheduler介绍与配置
  2. db2数据库连接数 linux_linux db2 连接数据库
  3. mysql企业版多少钱_企业资质代办多少钱
  4. wps电脑版_使用好这几个功能,让你手机里的wps变身神器。
  5. html5option的js代码,ng-option(示例代码)
  6. 手把手带你领略双十一背后的核心组件Sentinel之流控规则
  7. Java实现单链表的反转
  8. python元组 字符串 字典 习题+总结
  9. spring框架搭建第一天
  10. Java01-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】