异常处理 ╰半夏微凉° 2023-08-17 16:09 146阅读 0赞 1、异常与错误 错误对于程序而言是致命的,运用java的异常处理机制,异常发生后经过处理,程序还是能正常运行的。如:数组越界异常、除数为0异常等。异常类是指Exception类及其子类。 抛出异常:发生异常会后,生成异常对象,并把对象提交给运行系统的过程。 异常对象:由程序本身或java虚拟机产生,一个异常产生一个异常对象。 2、异常分类: 运行时期的异常:编译时期没有问题,运行时产生错误。运行异常一旦发生,异常后面的代码就不能运行,需要修改代码,抛出的使RuntimeException类或者是他的子类。如:空指针异常、下标越界异常、类型强制转换异常。 非运行时期的异常:如:非法访问异常、类没有找到异常等。 public class ExceptionDemo { public static void main(String[] args) { int []a={ 12,3,456,122}; int num=a[4]; System.out.println(num); } } ![1392562-20190816100433513-1982744518.png][] 该数组的最大下标为3,但是要输出的数组的下表为4,所以抛出了数组越界异常:java.lang.ArrayIndexOutOfBoundsException 3、throw关键字 throw用在方法体内,是抛出一个异常对象,是抛出异常的具体实施。而throws只是对异常的声明,告诉调用则方法内部有异常,且没有处理该异常。 在异常类ArrayIndexOutOfBoundsException中,有如下构造方法去创建异常对象: ![1392562-20190816104547748-424612906.png][] import java.util.Scanner; public class ExceptionDemo { public static void main(String[] args) { System.out.println("请输入数组的下标"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); ExceptionDemo.num(a); } public static void num(int i) { int[] a = { 12, 3, 456, 122 }; if (i >= a.length) throw new ArrayIndexOutOfBoundsException("越界异常"); int num = a[i]; System.out.println(num); } } ![1392562-20190816104632092-277264849.png][] 4、throws关键字 当该异常并不需要产生异常的方法去处理,或者不知道如何处理,则用throws在方法头部用throws抛出异常,表名该方法没有对异常处理,由该方法的调用者处理。 5、try----catch-----finally语句捕获和处理异常 try catch finally是直接处理异常,处理完成之后程序继续往下执行。 格式: try { //需要被检测的语句。(可能会产生异常的代码) } catch(异常类 变量) { //异常的处理语句。 (捕获到异常后的处理代码) } finally { //一定会被执行的语句。(无论是否捕获到异常均会执行) } 数组越界异常的处理: package pers.abb.trycatch; import java.util.Scanner; public class TryCatch { public static void main(String[] args) { System.out.println("请输入数组的下标"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); TryCatch.num(a); } public static void num(int i) { int[] a = { 12, 3, 456, 122 }; try { int num = a[i]; System.out.println(num); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界异常发生了。"); } finally { a = null;// 内存垃圾清理 } System.out.println("异常已经被处理了"); } } ![1392562-20190816111245693-1589114842.png][] 由运行结果可知,异常发生后,经过catch语句的处理,执行finally语句后,后面的System.out.println("异常已经被处理了");语句依旧能够正常运行。 6、自定义异常类 系统定义的异常都是系统可以预见的异常,但是在实际运用中,需要我们结合实际情况,创建适合自己程序的异常处理类。例如,人的年龄为负数的异常。 定义Person类: package pers.zzz.Exception; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) throws AgeException { //抛出异常给调用者,即main函数 if (age<0) throw new AgeException(age);//异常发生,创建异常类对象 else this.age=age; } } 定义异常类: package pers.zzz.Exception; public class AgeException extends Exception{ int age; public AgeException(int age){ this.age=age; } public void show(){ System.out.println("年龄为负数异常"); } } 测试类: package pers.zzz.Exception; public class Test { public static void main(String[] args) { Person p=new Person(); try { p.setAge(-11); } catch (AgeException e) { System.out.println("年龄定义有误"); e.show(); } } } 运行结果: ![1392562-20190816114351792-1149240054.png][] 转载于:https://www.cnblogs.com/zhai1997/p/11362956.html [1392562-20190816100433513-1982744518.png]: /images/20230810/b931f68587914d3bb17d016490e14e6c.png [1392562-20190816104547748-424612906.png]: /images/20230810/526a9870876e4c26b2b7538282efbd1e.png [1392562-20190816104632092-277264849.png]: /images/20230810/f28273ad4e0641d3b7e5170d4c55ddc2.png [1392562-20190816111245693-1589114842.png]: /images/20230810/10cd98c062d2466d8b26a5bc3ff39d88.png [1392562-20190816114351792-1149240054.png]: /images/20230810/e150efa94f3540fc89c5e332fa9e2608.png
相关 异常处理 异常处理 错误分类 语法错误 if 2 > 1 print(222) 未加冒号 dic = {"name"; "alex"} 字典中用冒号分隔键和 淩亂°似流年/ 2023年10月10日 10:15/ 0 赞/ 83 阅读
相关 异常处理 1、异常与错误 错误对于程序而言是致命的,运用java的异常处理机制,异常发生后经过处理,程序还是能正常运行的。如:数组越界异常、除数为0异常等。异常类是指Exception ╰半夏微凉°/ 2023年08月17日 16:09/ 0 赞/ 147 阅读
相关 异常处理 异常 1.什么是异常 在正常运行程序当中,即使语句或表达式在语法上是正确的,但在尝试执行时,它仍可能会引发错误。 在执行时检测到的错误被称为 “异常”,异常不一定会 ╰半橙微兮°/ 2022年12月30日 07:45/ 0 赞/ 155 阅读
相关 异常处理 所谓异常,就是以对象的方式表示一个或一类错误,该异常对象不仅封装了错误信息,还包含了错误发生时的“上下文”信息。传统的错误处理方式是,每当程序调用了某个方法进行了某种操作,程序 Bertha 。/ 2022年06月12日 05:12/ 0 赞/ 324 阅读
相关 异常处理 异常定义: 程序在运行时出现不正常情况。 问题也是现实生活中的一个具体事物,可以通过java类的形式进行描述。并封装成对象。Java对不正常 悠悠/ 2022年06月11日 08:12/ 0 赞/ 250 阅读
相关 异常处理 C++的异常处理机制被称为是不可恢复的:一旦异常被处理,程序的执行就不能够在异常被抛出的地方继续。如果这些 catch 子句不包含返回语句,在catch子句完成它的工作之后,程 忘是亡心i/ 2022年05月23日 03:55/ 0 赞/ 302 阅读
相关 异常处理 异常写入日志 package javaBase.io.others; import java.io.; import java.text.S 妖狐艹你老母/ 2021年12月21日 18:49/ 0 赞/ 432 阅读
相关 异常处理 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返 系统管理员/ 2021年12月14日 08:49/ 0 赞/ 450 阅读
相关 异常处理 1.异常概述 异常的类型:Error(致命的),Exception(非致命的)以及必检和免检异常。 异常就是一种对象,表示阻止正常进行程序执行的错误或者情况。 异常 待我称王封你为后i/ 2021年11月16日 13:22/ 0 赞/ 481 阅读
相关 异常处理 一、Error java虚拟机无法解决的严重问题。比如:JVM系统内部错误、资源耗尽等严重情况。StackOverflowError。 针对这类错误,一般不编写针对性的代码 痛定思痛。/ 2021年11月16日 10:28/ 0 赞/ 379 阅读
还没有评论,来说两句吧...