java第六章:异常机制

Exception 机制

就是在程序执行过程中,出现的异常事件,导致程序的中断。

解决异常的方法:使用try,catch,finally,throw,throws五个关键字解决;

1.try...catch...√

2.try...catch...catch...√

3.try...catch...finally...√

4.try...finally...√

5.catch...finally...写法错误

finally块中的语句总会被执行,常常写的是资源释放的代码,有return也会被执行,除非遇到System.exit(1)--退出JVM时,才不会被执行;

try-catch-fianlly中有return,执行顺序是什么:try块中没有异常匹配到时,try-finally-return;有异常匹配到try-catch-finally-return,反正finally总是在return之前被执行的。

throws 和 throw 关键字,是在需要向外界抛出异常,才使用,一般都要结合使用;

两者的不用之处:

1.声明位置不同:throws是在声明方法时声明该方法可能出来的异常类型

        throw是在方法内部抛出异常

2.两者后面的跟的不一样:throws后面跟的是异常类型,throw后面跟的是,new的异常对象;

3.作用不同:throws是对外声明该方法可能出现的异常类型;throw是把出现的异常向外抛,外界调用的时候还需要处理异常

Throwable是Error(错误)和Exception(异常)的父类:都在java.lang包下

Exception分为:

运行时异常:运行后才会出现的异常,不强制try..catch捕获,常见的有:NullPointException、ClassCastException、NumberFormatException、ArrayIndexOutOfBandException,InputMismatchException,算数异常

检查时异常:必须进行捕获,否则编译不通过。常见的有:SQLException,IOException,ClassNotFoundException等

自定义异常:JDK中的异常满足不了编码需求的时候。

步骤:

1.自定义一个异常类,继承Exception或者RuntimeException;

2.在该自定义异常类中,创建构造方法继承父类的构造方法super(String message)

3.在可能出现异常的地方,创建自定义异常对象

4.使用throw将异常抛出

时间: 2024-10-13 09:05:06

java第六章:异常机制的相关文章

[Effective Java]第六章 枚举和注解

第六章      枚举和注解 30.      用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型,例如一年中的季节或一副牌中的花色.在没引入枚举时,一般是声明一组int常量,每个类型成员一个常量: public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final int APPLE_GRANNY_SMITH = 2; public sta

JAVA基础篇三(Java,C++中的异常机制)

由于C++和JAVA有很多相似之处,又有很多细微的差别,所以在学习JAVA的过程中对两种语言进行对比学习. 1.C++的异常机制 C++中处理异常的过程是这样的:在执行程序发生异常,可以不在本函数中处理,而是抛出一个错误信息,把它传递给上一级的函数来解决,上一级解决不了,再传给其上一级,由其上一级处理.如此逐级上传,直到最高一级还无法处理的话,运行系统会自动调用系统函数terminate,由它调用abort终止程序.这样的异常处理方法使得异常引发和处理机制分离,而不在同一个函数中处理.这使得底层

java第六章 封装

实现封装:1.设为private,防止错误的修改2.创建共有的getter/setter方法3.在getter/setter方法中加入属性控制语句 封装的意义: 包的概述:java中的包机制也是封装的一种形式作用:包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件防止命名冲突包允许在更广的范围内保护类.数据和方法 练习: package com.fengzhuang; /** * Dog.java * @author 陈 *2019.1.16 */ public class D

Andrew Ng-ML-第十六章-异常检测

1.问题动机 图1.飞机发动机检测例子 对飞机引擎的例子,如果选取了两个特征x1热量产生度,x2震动强度.并得到如下的图,如果有一个新的引擎来检测其是否正常,x_test,那么此时如果点落在和其他点正常内,那么就显示是正常,不需要进一步的检测,但是如果在右下角绿色的,那么就是异常的,需要进一步地检测. 图1.密度检测 更一般地建立模型,当x_test输入时,若概率<阈值ε,那么就被设置为异常:否则设置为正常.如图来看,中心部分的概率大,四周部分概率小. 图2.异常检测的应用 异常检测最常见的应用

java第六章课后习题 p106

1.this和super各有几种用法? this三种用法: 用法一:表示当前对象引用,常用于形参或局部变量与类的成员变                  量同名的情形,使用this.成员名表示当前对象的成员 用法二:表示当前对象 用法三: 调用当前类的构造方法 super访问当前类的直接父类,主要应用场合: 子类的数据成员或成员方法与父类的数据成员或成员方法名字相同时,当要调用父类的同名方法或同名数据成员时则可用super来指明.即super.数据成员:super.成员方法super(参数) ,

第六章:异常机制

第六章:异常机制 异常的定义 异常:在程序运行过程中出现的意外事件,导致程序中断执行. 异常处理 try...catch 语法:try{ //可能出现异常的代码}catch(异常类型 异常对象名){ //处理异常的代码:}执行过程:当try中的代码异常发生时抛出一个异常对象,该异常对象与catch中异常类型进行匹配,匹配成功进入catch块,否则不执行catch中代码(相当于异常未被处理).程序只有当异常处理成功后才能继续执行. try...catch...catch 语法:try{ //可能出

“全栈2019”Java第五章:IntelliJ IDEA代码自动提示

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第五章:IntelliJ IDEA代码自动提示 下一章 "全栈2019"Java第六章:注释 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&quo

Java 线程第三版 第六章 高级同步议题 读书笔记

多线程数据同步错误比较难检测,因为通常是与事件的特定发生顺序有关. 一.同步术语 Barrier(屏障) barrier是多个Thread的集合点:所有的Thread都应该到齐在这个barrier之后才能允许它们继续下去. Condition variable(条件变量) 实际上不是变量,而是与某个lock有关联的变量. Event variable(事件变量) 条件变量的另一个名称. Critical section(临界区) 临界区是synchronized方法或者block. Lock(锁

Java的异常机制

一.什么是异常:非正常的,不同寻常的,不是语法错误. 生活中,医生说你身体某个部位异常,该部位和正常相比,有点不同功能可能受损. 张三开车去上班,正常情况下,顺利到达公司 非正常情况下,车子坏了,走路去公司 异常指的 不是语法错误 ,语法错误编译通不过,不会产生字节码文件,根本不能运行 程序中:代码出现错误,程序就会停止运行. 异常处理是衡量一门语言是否成熟的标准之一.主流的java c++ c# 都有异常处理机制. 异常处理可以让程序有更好的容错性,使代码更健壮. 传统的c语言是没有异常处理的