JavaSE基础笔记八

第六章 异常处理

1.体系结构

java.lang.Object

|----java.lang.Throwable

|----java.lang.Error:错误,java程序对此无能为力,不显式的处理

|----java.lang.Exception:异常,需进行处理

|----RuntimeException:运行时异常

|----1.ArrayIndexOutBoundsException 2. NullpointerException

3.ArithmeticException 4.ClassCastException

|----非RuntimeException:编译时异常

2.

①运行时异常较常见,可不显式的来处理

②编译时异常,必须要显式的处理

编译时异常,不是说有异常才处理,而是存在异常的隐患,必须在编译前,提示程序,万一出现异常应如何处理

3.如何处理异常 ?

java中的“抓抛模型”:

1.“抛”:当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将此对象抛出(自动/手动抛出)

1)一旦抛出此异常类的对象,那么程序就终止执行

2)此异常类的对象抛给方法的调用者

2.“抓”:抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式

java提供两种方式来处理一个异常类的对象

方式一:

try{

//可能出现异常的代码

}catch(Exception1 e1){

//处理方式一

}catch(Exception2 e2){

//处理方式二

}finally{

//一定要执行的代码

}

1.try内声明的变量,类似于局部变量,出了try{}语句,就不能被调用

2.finally是可选的

3.catch语句内部是对异常对象的处理:

>getMessage();  printStackTrace();

4.可以有多个catch语句,try中抛出的异常类对象从上往下去匹配catch中的异常类的类型,一旦满足就执行catch中的代码,执行完,就跳出其后的多余catch语句

5.如果异常处理了,那么其后的代码继续执行。

6.若catch中多个异常类是“并列”  关系,谁上谁下都可以

若catch中多个异常类是“包含”  关系,须将子类放在父类的上面,进行处理,否则报错

7.finally中存放的是一定会被执行的代码,不管try中,catch中是否仍有异常未被处理,以及是否有return

8.try-catch是可以嵌套的

处理方式二:

在方法的声明处,显式的使用throws + 异常类型

public void method1() throws Exception1 e1,Exception2 e2{

//可能出现的异常(尤其是编译时异常,一定要处理)

}

public void method2() throws Exception1 e1,Exception2 e2{

method1();

}

public void method3(){

try{

method2() ;

}catch(Exception1 e1){

System.out.println(e1.getMessage());

}catch(Exception2 e2){

System.out.println(e2.getMessage());

}

public static void main(String[] args){

对象1.method3();//不会出现Exception1 ,Exception2 异常

}

如何手动的抛出一个异常?

在方法的内部,可使用throw + 异常类对象,手动的抛出一个异常

如何自定义一个异常类?

手动的抛出一个异常,除了抛出的是现成的异常类之外,还可以抛出一个自定义的异常类

1)自定义的异常类继承现有的异常类

2)提供一个序列号,提供几个重载的构造器



时间: 2025-01-03 22:50:31

JavaSE基础笔记八的相关文章

JavaSE基础笔记513

JavaSE笔记整理 java概述 1. 人机交互 人机交互:是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程. 交互方式 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作. 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作.较为麻烦,需要记住一些命令. 2. 键盘功能键介绍 这些按键要求的不是认识:而是常用. ′ Tab *** 缩格 ′ 空格 Enter ****** ′ Window ′ Shift *** (C

JavaSE基础笔记六

第五章 面向对象三 1.static关键字 1.static:静态的,可用来修饰属性,方法,代码块,内部类 2.static修饰属性(类变量): ①由类创建的所有的对象,都共用这一个属性 ②当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用.vs实例变量(非static修饰的属性,各个对象各自拥有一套副本) ③类变量随着类的加载而加载.而且独一份 ④静态的变量可以直接通过"类.类变量"的形式来调用 ⑤类变量的加载是要早于对象,所以当有对象以后,可以"对象.类变量

JavaSE基础笔记五

第四章 面向对象(二) 1.面向对象的特征二:继承性 1.为什么要有继承性:减少代码的冗余 2.通过"class A extends B"类实现类的继承 子类(派生类):A   父类:(或基类 SuperClass) :B 3.子类继承父类后,父类中声明的属性.方法,子类就可以获取到 明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使子类不可以直接调用罢了 子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分 extends:子类是对父类功能

JavaSE基础笔记四

第三章 面向对象(一) 1.(了解)面向对象和面向过程 2.面向对象的编程关注于类的设计 1)一个项目或者工程,不管多么庞大,一定是由一个一个的类构成 2)类是抽象的,好比是制造汽车的图纸,车是由图纸制造的,其实就是类的实例化 3完成一个项目(功能)的思路 1)所需要完成的功能对应的类的对象是否存在 2)若存在,则通过对象直接调用对应的类中的属性或者方法即可 3)若不存在,则要创建类的对象,甚至说类都不存在,就需要设计类 4.面向对象编程的三条主线: 1)类及类的构成成分:属性 方法 构造器 代

Oracle基础笔记八

第八章 数据处理 1.数据操纵语言 DML(Data Manipulation Language – 数据操纵语言) 可以在下列条件下执行: 向表中插入数据 修改现存数据 删除现存数据 事务是由完成若干项工作的DML语句组成的 2.INSERT 语句语法 使用 INSERT 语句向表中插入数据. 使用这种语法一次只能向表中插入一条数据. INSERT INTO table [(column [, column...])] VALUES (value [, value...]); 2.1插入数据

JavaSE基础笔记十二

第十一章 多线程 理解程序.进程.线程的概念 程序可以理解为静态的代码. 进程可以理解为执行中的程序. 线程可以理解为进程的近一步细分,程序的一条执行路径. 2.如何创建java程序的进程(重点) 方式一:继承于Thread类 ①创建一个继承于Thread的子类 ②重写Thread类的run()方法,方法内实现此子线程要完成的功能 ③创建一个子类的对象 ④调用线程的start():启动此线程,调用相应的run()方法 ⑤一个线程只能够执行一次start 方式二:实现Runnable接口 ①创建一

JavaSE基础笔记十三

第十三章 java反射机制 1.如何创建Class的实例 1.1过程:源文件经过编译(javac.exe)后,得到一个或多个.class文件, .class文件经过运行(java.exe),就需要进行类的加载(通过JVM的类的加载器),记载到内存中的缓存,每一个放入缓存中的.class文件就是一个Class的实例 1.2Class的一个对象,对应着一个运行时类,相当于一个运行时类本身充当了Class的一个实例. 1.3java.long.Class是反射的源头.接下类涉及到反射的类都在java.

JavaSE基础笔记九

第七章 集合 1.对象的存储:①数组(基本数据类型&引用数据类型) ②集合(引用数据类型) 数组存储数据的弊端:1.一旦创建,其长度不可变2.真实的数组存放的对象的个数是不可知 2.集合框架: Collection接口: |----List接口:存储有序的,可重复的元素 相当于"动态"数组 新增的方法:删除remove(int index)修改set(int index,Object obj)获取get(int index) 插入add(int index,Object obj

JavaSE基础笔记七

面向对象的总结: 面向对象的三条主线 1.类及类的成分 2.面向对象的三大特性 3.其他关键字:this super import package static final interface 1.java程序是关注类的设计.类从代码的角度讲:并列关系.从执行.设计的角度:关联关系,继承关系,聚合关系 2.类的成分:属性 方法 构造器 代码块 内部类 2.1属性:      ①变量的分类:成员变量(属性 Field)&局部变量9(方法的形参.方法的内部.代码块内部) 基本数据类型(8中)&