Java 自定义异常类
//自定义异常类
public class s1 extends Exception{
//无参构造
public s1() {
super();
}
//有参构造
public s1(String message) {
super(message);
}
}
注册页面
import java.util.Scanner;
public class s2 {
//数据库,存储3个名字
static String[] usernames = {“张三”,“李四”,“王五”};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你的用户名:”);
String username = sc.next();
//调用方法,把username添加进去
method(username);
}
//定义一个方法
public static void method(String username ) {
//遍历数据库:用增强for循环
for (String name : usernames) {
if (name.equals(username)){
try {
throw new s1(“对不起,你输入的用户名已被注册!!!”);
} catch (s1 s1) {
s1.printStackTrace();
return;
}
}
}
System.out.println(“注册成功!”);
}
}
1,如果s1继承Exception(编译期异常),需要用try–catch(处理异常)
throws(向上抛出异常)
由于编译期异常不会中止进程(两个结果都会显示):
System.out.println(“注册成功!”);
throw new s1(“对不起,你输入的用户名已被注册!!!”);
需要用到return;(这样就不会出现上述情况)
2,如果s1继承RuntimeException(运行期异常),不需要用try–catch或throws,直接有jvm处理
jvm遇见异常会直接中断进程(不需要用return)