2021.02.02
第24次记录
课堂笔记:
1.SUN提供的JDK内置的异常肯定是不够用的。在实际开发中,有很多业务,
这些业务出现异常之后,JDK中都是没有的。和业务挂钩的,那么异常类需要
程序员自己去定义
2.java中自定义异常(死记硬背即可):
第一步:编写一个类继承Exception或者RuntimeException
第二步:提供两个构造方法,一个无参数的,一个带有String参数的
代码演示1:
public class ExceptionText09 {
public static void main(String[] args) {
MyException e = new MyException("用户名不能为空");
e.printStackTrace();
String msg = e.getMessage();
System.out.println(msg);
}
}
class MyException extends Exception{
public MyException(){
}
public MyException(String s){
super(s);
}
}
输出结果:
javaseAdvance.MyException: 用户名不能为空
at javaseAdvance.ExceptionText09.main(ExceptionText09.java:18)
代码演示2:
public class UserService {
public void register(String username, String password) throws IllegalNameException {
//引用==null的这个判断最好放到所有条件的最前面
//经验2:把null放到前面,null == username
if (null == username || username.length() < 6 || username.length() > 14){
throw new IllegalNameException("用户名长度必须为[6-14]之间");
}
//程序能够执行到此处,说明用户名合法
System.out.println("注册成功,欢迎["+username+"]");
}
}
public class IllegalNameException extends Exception{
public IllegalNameException(){
}
public IllegalNameException(String s){
super(s);
}
}
public class Text {
public static void main(String[] args) {
//创建UserService对象
UserService userservice = new UserService();
try {
userservice.register("ZhangSan", "wang123");
} catch (IllegalNameException e) {
System.out.println(e.getMessage());
}
}
}
输出结果:
注册成功,欢迎[ZhangSan]