JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)

一、异常

异常 :指的是程序在执⾏过程中,出现的⾮正常的情况,最终会导致 JVM 的⾮正常停⽌。
Java 等⾯向对象的编程语⾔中,异常本身是⼀个类,产⽣异常就是创建异常对象并抛出了⼀个 异常对象。Java 处理异常的⽅式是中断处理。
异常的根类是 java.lang.Throwable ,其下有两个⼦类: java.lang.Error java.lang.Exception ,平常所说的异常指 java.lang.Exception

Throwable 体系:
Error :严重错误 Error ,⽆法通过处理的错误,只能事先避免,好⽐绝症。
Exception :表示异常,异常产⽣后程序员可以通过代码的⽅式纠正,使程序继续运⾏,是
必须要处理的。好⽐感冒、阑尾炎。
Throwable 中的常⽤⽅法:
public void printStackTrace() :打印异常的详细信息。包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使⽤ printStackTrace
public String getMessage() :获取发⽣异常的原因。提示给⽤户的时候,就提示错误原因。
public String toString() :获取异常的类型和异常描述信息(不⽤)。

1.异常Exception

1、异常(Exception)的分类

编译时期异常 checked 异常。在编译时期,就会检查,如果没有处理异常,则编译失败。
(如⽇期格式化异常)
|- parseException - 格式化异常
|- IOException - IO异常
|- FileNotFoundException - 文件未找到
|- ClassNotFoundException - 类未找到
|- UnsupportedEncodingException - 不支持的字符集异常
运⾏时期异常 runtime 异常。在运⾏时期,检查异常。在编译时期,运⾏异常不会编译器  
检测(不报错)。(如数学异常)
|- NullPointerException - 空指针异常
|- IndexOutOfBoundException - 下标越界异常
|- ClassCastException - 类型转换异常
|- NumberFormatException - 数值转换异常
|- IllegalArgumentException - 非法的参数
|- UnsupportedOpertionException - 不支持的操作

 2、异常的处理

Java 异常处理的五个关键字: try catch finally throw throws

2.1捕获异常try…catch

捕获异常 Java 中对异常有针对性的语句进⾏捕获,可以对出现的异常进⾏指定⽅式的处理。
try {
编写可能会出现异常的代码
} catch ( 异常类型 e ) {
处理异常的代码
// 记录⽇志 / 打印异常信息 / 继续抛出异常
}
try 该代码块中编写可能产⽣异常的代码。
catch ⽤来进⾏某种异常的捕获,实现对捕获到的异常进⾏处理。
注意: try catch 都不能单独使⽤,必须连⽤。
如何获取异常信息:
Throwable 类中定义了⼀些查看⽅法:
public String getMessage() :获取异常的描述信息,原因(提示给⽤户的时候,就提示错误原因)。
public String toString() :获取异常的类型和异常描述信息(不⽤)。
public void printStackTrace() :打印异常的跟踪栈信息并输出到控制台。包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使⽤ printStackTrace
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
    try- catch解决已检查异常
 */
public class ExceptionDemo01 {
    public static void main(String[] args) {
        //格式化类
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值