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 自动生成的构造函数存根
	}
	
}