Java基础之异常机制
创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。
Java有着非常强大的异常处理机制,异常的祖先是Throwable,有如下两个子类:
Error:表示错误,错误产生后程序员不能通过代码的方式纠正,只能事先避免,好比生命已经停止。
Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的
异常分为编译时异常和运行时异常。
编译时异常又叫编译时被监测的异常:在程序编译过程中监测到非运行时异常的异常,出现该异常要么向上抛出,要么捕获处理。
运行时异常(runtimeException及其子类):在程序编译过程中监测到出现运行时异常,函数上或内部可以直接抛出异常,不需要捕获和声明。
总体异常的分类
处理异常的方式
抛出异常 throw
声明异常 throws 向上抛出
异常捕获 try-catch 自己处理
-
static String[] usernames={"张三","赵四","王五"};
-
public static void main(String[] args) {
-
Scanner sc=new Scanner(System.in);
-
System.out.println("请输入注册的名字!");
-
String next = sc.next();
-
//try-catch捕获异常
-
try {
-
checkUsername(next);
-
} catch (RegisterException e) {
-
e.printStackTrace();
-
}
-
}
-
public static void checkUsername(String usrename) throws RegisterException {//声明异常
-
for (String name : usernames) {
-
if (name.equals(usrename)){
-
throw new RegisterException("亲,该用户已经被注册!");//抛出异常
-
}
-
}
-
System.out.println("恭喜您,注册成功!");
-
}
打印异常的方法
public String getMessage() :获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。
public String toString() :获取异常的类型和异常描述信息(不用)。
public void printStackTrace() :打印异常的跟踪栈信息并输出到控制台
具有继承关系的异常
如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
自定义异常类
需要继承Exception(编译器异常)或者RunTimeException(运行时异常)
-
public class RegisterException extends Exception {
-
-
public RegisterException() {
-
}
-
-
public RegisterException(String message){
-
super(message);
-
}
-
}
创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。
文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/promsing/article/details/112408071
- 点赞
- 收藏
- 关注作者
评论(0)