异常
认识异常
异常是代码在编译或者执行的过程中可能出现的错误
1.运行时异常
int[] arr ={1,2,3,4}
//System.out.println(arr[3]);出现索引越界异常
String name = null;
System.out.println(name.length); //空指针异常
2.编译时异常
代码写完就会出现的错误。(在于提醒程序员,你的代码在这里很容易出现编译异常)
STring s = "2023-11-11 11:11:10";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(s);
System.out.println(d);
throws 抛出异常
在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理
try...catch捕获异常
直接捕获程序出现的异常
异常的作用
异常是用来查询系统Bug的关键参考信息
异常可用作为方法内部的一种特殊返回值,以便通知上层调用者底层的执行情况
//理解异常的作用
System.out.println("开始=========");
try {
divde(10, 0);
System.out.println("程序执行成功了!");
} catch (Exception e) {
System.out.println("程序出现了bug");
}
System.out.println("结束");
}
private static void divde(int a, int b) {
if (b == 0) {
//手动抛出异常作为方法的返回值,通知上层的调用者
throw new RuntimeException("/ b 不能为 0 ");
}
int c = a / b;
System.out.println("结果是:" + c);
}
自定义异常
Java无法为这个世界上全部的问题都提供了异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便使用异常来管理该问题,那就需要自己来定义异常类了
自定义异常的分类
自定义运行时异常
定义一个异常类继承RuntimeException
重写构造器
通过throw new 异常类(xxx)来创建异常对象并抛出
编译阶段不报错,提醒不强烈,运行时才可能出现!!!
自定义编译时异常
定义一个异常类Exception
重写构造器
通过throw new 异常类(xxx)创建异常对象并抛出
编译阶段就报错,提醒更加强烈!!
//自定义异常
public class ItheimaAgeIllegalException extends Exception {
public ItheimaAgeIllegalException() {
}
public ItheimaAgeIllegalException(String message) {
super(message);
}
}
public static void main(String[] args) {
//掌握自定义异常的定义
System.out.println("开始");
try {
saveAge(234);
} catch (Exception e) {
e.printStackTrace();//打印异常信息出来
}
System.out.println("结束");
}
public static void saveAge(int age) throws ItheimaAgeIllegalException {
if (age <= 0 || age > 150) {
//出现问题:用异常表示,年龄非法异常
//throw:从方法内部抛出一个异常对象,通知调用我的方法
throw new ItheimaAgeIllegalException("/age");
} else {
System.out.println("成功保存您的年龄:" + age);
}
}
标签:自定义,System,println,new,异常,out
From: https://www.cnblogs.com/yifan0820/p/17828015.html