首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >初识异常

初识异常

作者头像
用户7886150
修改于 2020-12-14 06:08:51
修改于 2020-12-14 06:08:51
5200
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 了解Java中的数组IndexOutofbounds异常

异常 

继承体系 

查看Throwable的描述 可知他有两个子类,分别是Exception和error。 其中Exception异常是要求程序对产生的异常进行处理,不处理的话程序将会结束运行。常见形式为(XxxException)。 Error错误一般指和虚拟机有关的错误,如系统崩溃,动态链接失败等,错误无法恢复或不能捕获,发生在JVM中,如开辟过大的数组空间导致内存溢出。常见形式为(XxxError)。 Exception下还有一个特殊子类,RuntimeException运行时异常  

异常产生过程 

例子如下,产生ArrayIndexOfBoundsException异常  

throw 抛出异常 

使用格式: throw new 异常类名(参数) 如ArrayIndexOutOfBoundsException异常 使用上面的方法可以自行定义异常信息,如: 

throw new ArrayIndexOutOfBoundsException("索引超出范围");

throws 声明异常 

如果方法内通过throw抛出的异常,没有进行捕获处理,那就要通过throws进行声明,让调用者处理。 

class Demo {

    public void test() throws Exception {

    if(x > 0) {

    throw new Exception();

    }else {

    system.out.println("test");

    }

}

}

异常捕获 try…catch…fianlly 

格式如下 

try {

    //需要被检测得语句

} catch {

    //异常处理语句

} finally {

    //一定被执行的语句

}

其中,try块是必须的,catch和finally块都是可选的,但try后必须出现其中一个,或同时出现两个。 finally块:一般用来释放物理资源,除非try块或catch块调用如System.exit(1)退出虚拟机,否则finally块总会被执行。还有最后不要在finally块最后加入return语句,因为当try块或catch块中遇到return或throw使,系统执行这两个语句不会结束该方法,而是去寻找流程是否有finally块,有的话执行,如果其中finally块包含return语句,则程序退出,不会再执行try块或catch块中任何代码。 

运行时异常 

RuntimeException及其子类如:NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时异常。 特点: 

方法抛出运行时异常,无需定义throws声明,调用者也无需处理。运行时期异常发生后,需要程序员进行代码修改。 

异常在方法中的重写细节 

子类覆盖父类方法时,如果父类方法声明异常,则子类只能声明父类异常或该异常的子类,或不声明。 当父类被覆盖的方法没有异常声明时,子类覆盖方法无法声明异常,即不可用throws声明,只能catch捕获,或是在catch中抛出RuntimeException。 所以通常建议使用Runtime异常。 

异常中的常用方法 

方法如下 都是用来返回关于异常的信息 

自定义异常 

当需要自定义异常类时,让类继承Exception或RuntimeException即可 

Class 异常名 extends Exception {

    //无参构造器

    public 异常名() {

    }

    //带一个字符串参数的构造器

    public 异常名(String s) {

        super(s);

    }

}

如果继承的是Exception的话,必须用throws声明,而后进行捕获。例 

class Exp extends Exception {

    Exp() {

        super();

    }

    Exp(String s) {

        super(s)

    }

}

class Test{

    private int a;

    Test(int a) throws Exp {

        if(a > 0) {

            throw new Exp(a + "大于0");

        }

        this.a = a;

    }

}

class Exp {

    public void static mian(String[] args) {

        try {

            Test t = new Test(8);

        }catch(Exp ex) {

            Sysotem.out.println(ex.getMassege());

        }

    }

}

总结 

异常基本操作 

创建异常对象抛出异常处理异常(不一定会产生异常),如果产生就进行处理 

常见异常 

算术异常类:ArithmeticExecption 

空指针异常类:NullPointerException 

类型强制转换异常:ClassCastException 

数组下标越界异常:ArrayIndexOutOfBoundsException 

文件未找到异常:FileNotFoundException 

字符串转换为数字异常:NumberFormatException

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Java】认识异常
3️⃣数组下标越界异常(ArrayIndexOutOfBoundsException)
喜欢做梦
2024/11/25
1370
【Java】认识异常
认识异常(2)
❤️❤️在编写程序时,如果程序中出现错误,此时就需要将错误的信息告知给调用者,比如:参数检测。 在Java中,可以借助throw关键字,抛出一个指定的异常对象(我们需要new一个异常类),将错误信息告知给调用者。
E绵绵
2024/04/17
2260
认识异常(2)
内部类、异常以及 LeetCode 每日一题
成员内部类(方法外,外部类里面定义的)的 class 文件的格式是 OuterClass$InnerClass.class。
Carlos Ouyang
2019/08/19
7960
内部类、异常以及 LeetCode 每日一题
【Java SE语法篇】11.异常
在生活中,一个人表情痛苦,出于关心,可能会问:你是不是生病了,需要我陪你去看医生吗?
爱敲代码的小杨.
2024/05/07
1410
【Java SE语法篇】11.异常
【JavaSE】Java入门九(异常详解)
Java中可以说是把所有的异常体系都封装了起来,在程序中遇到各种问题时,JVM会直接定位异常情况并在控制台提示。
小皮侠
2024/04/08
1460
【JavaSE】Java入门九(异常详解)
【Java零基础入门篇】第 ⑥ 期 - 异常处理
程序员在写代码的时候即便写的尽善尽美,在系统的运行过程中依据会遇到一些问题,因为很多问题不是靠代码能够避免的。
命运之光
2024/03/20
2140
【Java零基础入门篇】第 ⑥ 期 - 异常处理
《JAVA SE》认识异常
我们发现, 一旦 try 中出现异常, 那么 try 代码块中的程序就不会继续执行, 而是交给 catch 中的代码来执行. catch 执行完毕会继续往下执行。
VIBE
2022/12/02
4080
第33节:Java面向对象中的异常
Exception:RuntimeException为空指针异常,数组下标越界异常,算数异常,类型转换异常等,IO异常(IOException),SQL异常(SQLException)。
达达前端
2019/07/03
6540
第33节:Java面向对象中的异常
Java学习笔记——异常处理
在程序运行时,很多问题不是靠代码能够避免的,比如用户输入数据格式不符合预期,读取文件不存在,网络不可用或不通畅等。
梦飞
2022/06/23
2780
Java常用工具之异常
在程序开发中,异常指不期而至的各种状况。它是一个事件,当发生在 程序运行期间时,会干扰正常的指令流程。
慕白
2020/01/02
6950
Java常用工具之异常
Java异常处理习题
A.try B.catch C.throw D.finally
全栈程序员站长
2022/08/26
7210
Java复习 【知识改变命运】第七章
当执行到num1/num2时候就会抛出一个异常,ArithmeticException,当抛出异常后程序就崩溃掉,不会执行下面的代码了
用户11319080
2024/11/21
850
Java复习 【知识改变命运】第七章
《JavaSE》---18.<异常处理>
1. Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception
用户11288958
2024/09/24
1500
《JavaSE》---18.<异常处理>
深入理解 java 异常处理机制
原文 https://blog.csdn.net/hguisu/article/details/6155636
猿芯
2021/05/27
6990
深入理解 java 异常处理机制
JavaSE异常
注:调用声明抛出异常的方法时,调用者必须对该异常进行处理,或者继续使用throws抛出
用户9645905
2023/04/12
3590
JavaSE异常
异常(Java)
1. Throwable : 是异常体系的顶层类,其派生出两个重要的子类 , Error 和 Exception
用户10921393
2024/01/23
2950
Java学习【认识异常】
Error代表的是系统级别的错误,属于严重的问题 Exception叫做异常,代表程序可能出现的问题,通常用Exception和它的子类来封装程序所出现的问题 运行时异常: RuntimeException及其子类,编译阶段不会出现问题,运行时出现异常(例如数组越界异常)
2的n次方
2024/10/15
1350
Java学习【认识异常】
Java异常处理
异常:在Java语言中,将程序执行中发生的不正常情况称为“异常” 开发过程中的语法错误和逻辑错误不是异常)
Java_慈祥
2024/08/06
2540
Java异常处理
Java的”异常“超详细讲解
这里就会显示 ArrayIndexOutOfBoundsException *(数组越界)*错误。并且会提示报错的行号。
黎鹤舞
2024/03/19
1700
Java的”异常“超详细讲解
异常处理升级版
其实前面就写了一篇异常处理的文章,但是那个文章实在是感觉太详细了,不太好复习。所以今天我就再写一篇这样就更好复习了。 一、异常概述   在我们日常生活中,有时会出现各种各样的异常,例如:职工小王开车去上班,在正常情况下,小王会准时到达单位。但是天有不测风云,在小王去上班时,可能会遇到一些异常情况,比如小王的车子出了故障,小王只能改为步行.  异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。  异常发生在程序运行期间,它影响了正常的程序执行流程       Jav
用户1195962
2018/01/18
1K0
异常处理升级版
相关推荐
【Java】认识异常
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档