-------------------android培训、 java培训、期待与您交流!-------------------

java中异常的总结

首先,什么是异常呢?简而言之,异常是对问题的描述,将问题封装成对象。

异常体系:

Throwable

|------Error

|-----  ....

|-----  ....

|------Exception

|------RuntimeException

|------IOException

|--------.....

|--------.....

Throwable是所用异常的父类,其中有两个子类Error和Exception。顾名思义,Error是严重异常,即错误。而Exception是一般异常。运行时异常(RuntimeException)时Exception常见异常。做程序尽量让异常发生在编译时期,这样便于程序员检查修改。

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

throw和throws的用法如下:throw定义在方法内,用于抛出异常对象;throws定义在方法上用于抛出异常类,可以抛出多个异常,用逗号隔开。当方法内用throw抛出异常对象,并未进行try处理,必须要在方法上声明,否则编译失败。RuntimeException除外。也就是说,方法内如果抛出RuntimeException异常,方法上可以不用声明。

如果方法声明了异常,调用者需要进行处理,处理方式是:再抛或者try处理。

异常用两种,编译时被检查异常和运行时异常(编译时不检查)。编译时被检查异常在编译时,如果没有处理(抛或try),编译将失败。该异常被标识,代表可以被处理。运行时异常在编译时,不需要处理,编译器不检查。该异常发生时,一般不处理,让程序停止,需要对代码进行修正。

异常处理语句:

try
{
    //需要被检查的代码;
}
catch()
{
    //处理异常代码;
}
finally
{
    //一定会执行的代码;
}

他们有三种结合方式:

第一种:

try
{}
catch()
{
}

第二种:

try
{
}
finally
{
}

第三种:

try
{
}
catch()
{
}
finally
{
}

finally中通常定义关闭资源代码。因为资源必须要释放。finally只有一种情况执行不到,那就是finally在System.exit(0)后。

自定义异常:

自定义一个类,继承Exception或者RuntimeException。该类就具备了可抛性,并具备了操作异常的共性方法。

当要定义自定义异常的信息时,可以使用父类已经定义好的功能,把异常信息传递给父类的构成方法。

代码如下:

class MyException extends Exception
{
MyException(String message)
{
super(message);
}
}

自定义异常:按照java的面向对象思想,将程序中出现的特有问题进行封装。

异常的好处:1、将问题进行封装;2、将正常流程代码和问题处理代码相分离。方便阅读。

异常的处理原则:

1、处理方式有两种:try或throws

2、调用到抛出异常的功能时,抛出几个,就处理几个。可能出先现一个try对应多个catch的情况

3、出现多个catch时,父类的catch要放在最下面。

4、catch内,需要定义针对性的处理方式,不要简单的定义printStackTrace或者输出语句,也不要不写。

5、当捕获到的异常,本功能处理处理不了时,可以继续在catch中抛出

代码如下:

try
{
throw new AException();
}
catch(AException e)
{
throw e;
}

6、如果该异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能的异常。或者异常可以处理

但需要将异常产生的和本功能相关的问题提供出去,让调用者知道,并处理,也可以将捕获到的处理后,转换新都异常。

代码如下:

try
{
throw new AException();
}
catch(AException e)
{
//对AException处理;
throw new BException();
}

异常的注意事项:

在子父覆盖时;

1、子类抛出的异常必须是父类的异常或子集。

2、如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try,不能抛。

-------------------android培训、 java培训、期待与您交流!-------------------

黑马程序员 java中关于异常的学习日志相关推荐

  1. 黑马 程序员——Java基础---流程控制

    黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...

  2. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

  3. 黑马程序员Java零基础视频教程_下部(P52-P134)

    黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...

  4. 黑马程序员Java零基础视频教程_上部(P1-P80)

    黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...

  5. 黑马程序员——Java字符流、字节流IO流

    黑马程序员--Java字符流.字节流Io流 ---------------------- <a href="http://www.itheima.com"target=&qu ...

  6. 黑马 程序员——Java基础---IO(下)

    黑马程序员--Java基础---IO(下) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供 ...

  7. 2023年黑马程序员Java学习路线图

    2023年Java学科免费学习资源放送40+套课程,超过600小时的内容! 在过去的一年里,为了帮助更多人线上充电,学会更多技能,黑马程序员举办了 150+ 场免费直播公开课,新增精品视频教程 80+ ...

  8. 黑马程序员__关于自己的一些学习死角的再学习(基于老毕的java基础视频)

    ----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+A ...

  9. 黑马程序员 JAVA WEB 第三节 MYSQL 约束

    这是阿锃总结的第三节黑马程序员JAVA WEB视频的MYSQL约束部分的笔记.希望可以帮助跟我一样正在学习Java web的同学们.我们一起进步.   b_d 若果有同学也想学习黑马程序员Java w ...

最新文章

  1. Linux 安装图形界面及远程连接
  2. 哪种营销方法效果最差_网络营销推广中如何监控评测网络效果?
  3. 合工大五套卷_2021森哥五套卷(五)
  4. js中同名的函数的调用情况
  5. RabbitMQ/pika模块
  6. Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法
  7. IDEA 2017.3.3 Mybatis Plugin 3.154 安装和破解方法(Windows系统)
  8. idea运行报Command line is too long
  9. amd核芯显卡控制面板自定义分辨率_显卡是哪个
  10. php如何输出换行,PHP怎样才能让输出的内容自动换行
  11. 微信能上但浏览器无法上网
  12. MATLAB彩色图片的处理
  13. Arduino 用4位共阴数码管造一个计数器
  14. GPS定位详解——涉及GPS版本变化、定位获取失败等常见问题。
  15. Matlab柱状图 不同颜色
  16. mysql的where子查询_MySQL where型子查询
  17. jQuery如何根据元素值删除数组元素
  18. 【转】2022年web前端开发学习路线图
  19. 【高数】高数第四章节——不定积分换元积分分部积分
  20. phpcms9.6 ueditor_PHPCMS v9.5.6整合UEditer1.4.3详细教程

热门文章

  1. 有向图的邻接矩阵和邻接表画法
  2. Q妹教你赚外快:如何把微信聊天记录写入文件
  3. 大d是什么梗_黑社会2粤语-请问粤语中“大D”是啥意思?黑社会2里有一 – 手机爱问...
  4. java.lang.IllegalArgumentException的解决方法
  5. 十个Python初学者常犯的错误
  6. WIN7下安装Oracle 10g 的详细过程以及有关问题的解决(转)
  7. 自贸港首家公务机公司海航金鹿商务正式启动运营
  8. 网关服务器性能,服务网关API路由导致的性能问题分析
  9. SSDHDD混装换一块SSD(迁移系统与资料不重装)
  10. c语言程序学生籍贯信息记录,c语言程序学生籍贯信息记录簿设计.doc