Threadable 类是Java语言中所有错误和异常的超类
1.只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Java throw语句抛出.类似地,只有此类或其子类之一才可以是catch子句的参数类型.
结论:要想一个类称为"异常类型",那么他必须是Throwable或者它的子类
2. 自定义异常的对象,只能由throw语句手动抛出
3. 建议自定义异常,添加两个构造器
(1)无参构造
(2)异常类型(String message),可以为message属性赋值
/** * */
package per.leiyustudy.definethrow;
import java.util.Scanner;
/** * @author 雷雨 * * 自定义异常 * * */
public class TestDefineThrow {
public static void main(String[] args) {
try {
login();
} catch (Exception e) {
// TODO 自动生成的 catch 块
System.out.println(e.getMessage());
}
}
/*需求:从键盘输入用户名.密码.检验码 * 当检验码错误的时候用异常来处理 * * */
public static void login() throws Exception {
Scanner sca = new Scanner(System.in);
System.out.println("请输入用户名");
String uers = sca.next();
System.out.println("请输入密码");
String password = sca.next();
String code = "1234";
System.out.println("请输入检验码");
String check = sca.next();
if(!code.equals(check)) {
throw new Uers_name_Error("校验码输入错误");
}
}
}
class Uers_name_Error extends Exception{
/** * */
public Uers_name_Error() {
super();
// TODO 自动生成的构造函数存根
}
/** * @param arg0 */
public Uers_name_Error(String arg0) {
super(arg0);
// TODO 自动生成的构造函数存根
}
}