前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java异常&处理异常

Java异常&处理异常

作者头像
Cikian.
发布2022-10-31 10:29:32
2.4K0
发布2022-10-31 10:29:32
举报
文章被收录于专栏:Cikian技术站

Java异常&处理异常

一、什么是异常

在Java程序运行时,会发生意料之外的情况,这种情况被称为例外或者异常,异常的出现,往往会中断程序的运行。在Java中,异常也是一个对象,当程序发生异常时,就会出现一个异常对象,其中包括异常类型、异常信息、异常原因等信息。

举个例子:当你穿上鞋,走路时发现左右脚穿反了,这时候,就是发生了异常,当然,这个异常不是致命的,你可以选择继续这样穿下去,继续走路,但是这样可能会引发其他严重的后果。大多数时候,我们会中断当前的事情,脱下鞋子,换过来。

二、异常分类

1. 编译时异常

当我们编写Java代码时,编译器会对代码进行检查,如果有异常则不能通过编译,所以此类异常一旦出现,就必须处理。

2. 运行时异常

运行时异常,即编译时不会报错,在运行时发生的异常。此类异常不强制处理,但是就像上面举的“穿鞋”的例子,假如不处理,可能会引发其他更严重的错误。

3. 处理办法

无论是编译时异常还是运行时异常,理论上都需要我们去处理,假如不处理异常,JVM的默认处理办法是,在异常发生的位置终止程序,然后输出异常的信息。

使用 throws 抛出异常,由JVM处理,即以默认方式处理异常:在出现异常的位置终止异常;

是由 try...catch.. 环绕:

代码语言:javascript
复制
try{
    // 出现异常的代码
};catch (异常类1 异常对象){
    // 处理异常
};catch (异常类2 异常对象){
    // 处理异常
};...
 ...
 final{
    // 
};

将出现或者可能出现异常的代码放在 try 后面的大括号中,在下方的 catch 的小括号中,即catch的参数为一个异常对象,在之后的大括号中,则是出现此类异常时的处理方法。

try...catch... 这里有些类似与 if...else... 语句,try 后面的代买可以看作 if 语句的条件,如果发生异常,则到下方寻找对应的异常类型,执行对应的处理办法:

代码语言:javascript
复制
// 类比成下列代码
if(发生了异常类型1){
    // 处理办法1
};else if(发生了异常类型2){
    // 处理办法2
};else if(发生了异常类型3){
    // 处理办法3
};......

throwstry...catch... 配合使用:

在可能出现异常的方法名后使用 throws 抛出异常,在此方法处不处理异常,调用者在调用此方法时,需要集中捕获处理异常

如:

代码语言:javascript
复制
class Fun {
    public void fun() throws RuntimeException {
        int a = 5 / 0;
    };
};

public class Main {
    public static void main(String[] args){
        Fun fun = new Fun();
        try {
            fun.fun();
        }; catch (RuntimeException e) {
            e.printStackTrace();
            System.out.println("处理异常!");
        };
    };
};

在上面的例子中,Fun 类并未处理异常,而是使用 throws 将异常抛出,而在下方调用时,则需要使用 try...catch... 环绕,捕获处理异常。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java异常&处理异常
    • 一、什么是异常
      • 二、异常分类
        • 1. 编译时异常
        • 2. 运行时异常
        • 3. 处理办法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档