异常处理——毕向东Java基础教程学习笔记

1.异常:就是程序运行过程中出现的不正常情况。

异常的由来:问题本身也是日常生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成对象。

其实,就是java对不正常情况描述的对象体现。

对于问题的划分:一种是严重性问题,一种是非严重性问题。

对于严重的,java用Error类进行描述。

对于Error类一般不写针对型代码对其进行处理。

对于非严重的,java通过Exception类进行描述。

对于Exception类可以使用针对性处理方式进行处理。

无论Error类还是Exception类都有一些共性内容,

比如不正常情况的信息,引发原因等。

Throwable

--Error

--Exception

2.异常的处理

java中提供了特有的语句进行处理:

try

{ 需要被检测的代码;}

catch(异常类名 变量)

{处理方式; }

finally

{一定会执行语句; }

3.对捕获到的异常对象进行常见方法操作。

getMessage();获取异常的信息

toString();异常名称:异常信息

printStackTrace();打印异常在堆栈中的跟踪信息,包括异常名称,异常信息,异常出现的位置。

其实JVM默认的异常处理方式就是调用printStackTrace()。

在方法上声明异常,

便于提高安全性,让调用处进行处理,不处理则编译失败。

对多异常的处理

1.声明异常时,最好声明为更具体的异常类型,这样也能处理的更为具体。

2.对方声明几个异常,就对应几个catch块。

如果多个catch块中的异常有继承关系,使用父类异常的catch块放在最后面,因为catch块是按顺序处理的。另外,不要定义多余的catch块。

建议进行catch处理时,catch中一定要定义具体的处理方式,不要简单地定义一句e.printStackTrace();

也不要简单地就写一条输出语句。

自定义异常

因为项目中可能出现特有的问题,而这些问题并没有被java所描述并封装成对象,所以对于这些问题,可以按照java中对问题封装的思想,将特有的问题进行自定义的异常封装。

自定义异常类应该继承Exception。

继承Exception的原因:

因为异常类和异常对象都需要被抛出,它们都具备可抛性,这是Throwable体系所具有的特性。

这有这个体系中的类和对象才可以被throw和throws操作。

当在方法内部出现了throw抛出异常对象,那么就必须要给出对应的处理动作。

要么在内部用try,catch处理;

要么在方法上声明让调用者处理。

一般情况下,方法内部出现异常,方法上需要声明。

throws和throw的区别

throws 使用在方法上(小括号和大括号之间);

throw使用在方法内部。

throws后面跟的异常类名,可以跟多个,中间用逗号隔开。

throw后面跟的是异常对象。

Exception中有一个特殊的子类RuntimeException(运行时异常),

如果在方法内部抛出该类或者其子类异常,可以不再方法上声明,编译也可以通过;

如果在方法上声明该类或其子类异常,调用者可以不用进行处理,编译一样通过。

之所以不需要再方法上进行声明,是因为不需要调用者进行处理。

当该异常发生,程序就会停止运行,因为在运行时出现了无法继续运算的情况,希望停止程序后,对代码进行修改。

自定义异常时,如果该异常的发生,使程序无法继续运行下去时,

就让该自定义异常继承RuntimeException。

对于异常分为两种:

1.编译时被检测到的异常。

2.编译时无法被检测到的异常。(运行时异常。及RuntimeException及其子类)

时间: 2024-10-08 15:06:12

异常处理——毕向东Java基础教程学习笔记的相关文章

匿名内部类--毕向东java基础教程学习笔记

1.匿名内部类其实就是内部类的简写形式. 2.定义匿名内部类的前提: 该内部类必须继承一个类,或者实现一个接口. 3.匿名内部类的格式:new 父类名或接口名(){定义子类内容:} 4.其实匿名内部类就是一个匿名子类对象,把定义类和创建对象合成一个步骤了,而且这个对象有点“胖”,也可以理解为带内容的对象. 5.匿名内部类中的方法最好不要超过三个.

多线程--毕向东java基础教程视频学习笔记

多线程运行的安全问题 例子:售票系统 1 class Ticket implements Runnable 2 { 3 //定义静态变量ticket 4 private static int ticket=100; 5 public void run() 6 { 7 while(true) 8 { 9 //判断票编号是否大于0 10 if(ticket>0) 11 { 12 try 13 { 14 Thread.sleep(10); 15 } 16 catch (InterruptedExcep

毕向东Java基础教程

人机交互方式: 图形化界面(Graphical User Interface : GUI) 命令行方式(Command Line Interface : CLI)

java基础 异常学习笔记

1.异常是导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序中断执行,造成不必要的损失,所以在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序正确的执行. 2.一旦产生异常之后,异常之后的语句并不会执行,而是直接结束程序,并将错误报告给用户. 3.在计算机发展史有两大杀手:断电,被除数为0(结果为无穷大,则程序内容会被全部占满). 处理异常的格式: try{// 可能出现异常的语句} catch(异常类异常对象){//编写异常的处理语句} ca

毕向东—Java基础知识总结(超级经典)

Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ------------------------------------------------------ 一:java概述: 19

毕向东java基础总结

Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. -------------------------------------------------------------------

<<Python基础教程>>学习笔记之|第01章|基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便. 第01章:基础知识 ------ Jython:      Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到 IronPython:  Python的C#实现,运行在Common Language Runtime,速度比Python要快 >

jquery基础教程学习笔记一

最近静下心来看书才深刻的体会到:看书真的很重要,只有看书才能让你有心思静下心来思考. 重温<jquery基础教程> 一.事件 主要掌握常见的事件以及理解jquery的事件处理机制. 需要注意的有: 1.事件传播,包括了事件捕获和事件冒泡,以及怎么消除事件传播的影响,以及应用事件传播. 主要的方法有:a.根据事件目标来确定操作,即event.target b.阻止事件传播,即event.stopPapogation c.理解默认事件和jquery事件的区别还有阻止默认事件,即preventDef

Java基础班学习笔记(4)

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如