当前位置 : 主页 > 网络编程 > 其它编程 >

Java学习异常(概念、分类、异常处理机制、(try、catch、finally)、throw和throws、自定义异常)

来源:互联网 收集:自由互联 发布时间:2023-07-02
1、异常的概念 1什么是异常 所谓异常是指在程序运行的过程中发生的一些不正常的事情如除0溢出数组下标越界 1、异常的概念 1什么是异常 所谓异常是指在程序运行的过程中发生的一些
1、异常的概念 1什么是异常 所谓异常是指在程序运行的过程中发生的一些不正常的事情如除0溢出数组下标越界 1、异常的概念

1什么是异常

所谓异常是指在程序运行的过程中发生的一些不正常的事情如除0溢出数组下标越界所要读取的文件不存在

2异常导致的后果

Java程序的执行过程中如出现异常事件可以生成一个异常类对象该异常类对象封装了异常事件的信息并将其被提交给Java运行时系统这个过程称为抛出异常不处理的话会直接导致程序直接中断。

3如何防止程序中断

设计良好地程序应该在程序异常发生时提供处理这些异常的方法使得程序不会因为异常的发生而阻断或产生不可预见的结果。

在这里插入图片描述

2、Java异常处理机制

在这里插入图片描述

try{}语句块中放的是要检测的Java代码可能有会抛出异常也可能会正常执行 catch(异常类型){}块是当Java运行时系统接收到try块中所抛出异常对象时会寻找能处理这一异常catch块来进行处理可以有多个catch块 finally{}不管系统有没有抛出异常都会去执行一般用来释放资源。除了在之前执行了System.exit(0)

代码示例1

class person{String name;}public class Test {public static void main(String[] args) {person p null;try {p.name "zheng";}finally{ //不管系统有没有抛出异常都会去执行System.out.println("end");}}}

在这里插入图片描述

代码示例2

class person{String name;}public class Test {public static void main(String[] args) {person p null;try {p.name "zheng";}catch(java.lang.NullPointerException e){ //捕获、处理异常java.lang.NullPointerException异常类型//catch(Exception){}处理所有异常System.out.println("空指针检查下是否没有初始化");}finally{System.out.println("end");}}}

在这里插入图片描述

3、throw和throws

throw用于手动抛出异常。作为程序员可以在任意位置手动抛出异常 throws用于在方法上标识要暴露的异常。抛出的异常交由调用者处理 两者区别 throw用在方法内后面跟上要抛出的异常类对象**手动抛出** throws修饰在方法上告诉调用者此方法可能会抛出异常后面跟上可能要抛出的异常类名**申明**

代码示例

class bar{int age;public bar(int age){this.age age;}public void check() throws IllegalArgumentException{if (age < 18){throw new IllegalArgumentException("年龄太小"); //抛出异常}} }public class Test {public static void main(String[] args) {bar b new bar(15);try{b.check();}catch(IllegalArgumentException e){System.out.println(e.getMessage());}System.out.println("end");}}

在这里插入图片描述


常见异常 RuntimeExceptionIOExceptionSQLExceptionClassNotFoundException 自定义异常 Java提供的异常体系不可能预见所有希望加以报告的错误 自定义异常类必须从已有的异常类继承 建立新的异常类型最简单的方法就是让编译器产生默认构造方法 对异常来说最重要的部分就是它的类名 可以为异常定义一个接受字符串参数的构造方法字符串参数描述异常信息

自定义异常示例代码

class bar{int age;public bar(int age){this.age age;}public void check() throws AgeLessThanEighting{if (age < 18){throw new AgeLessThanEighting("年龄太小");//抛出自定义异常}} }class AgeLessThanEighting extends Exception{ //自定义异常String massege;public AgeLessThanEighting(String massege){this.massege massege;}}public class Test {public static void main(String[] args) {bar b new bar(15);try{b.check();}catch(AgeLessThanEighting e){System.out.println(e.massege);}System.out.println("end");}}

在这里插入图片描述

上一篇:联想m100耗材灯亮_联想m100加粉清零方法
下一篇:没有了
网友评论