题目描述
实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名密码. 如果用户名密码出错, 使用自定义异常的方式来处理。
自定义两个异常
class UserNameException extends Exception{
public UserNameException(String message) {
super(message);
}
}
class PassWordException extends Exception{
public PassWordException(String message) {
super(message);
}
}
只要写个构造方法就成,不过要继承于Exception或者RunTimeExpetion。
登陆函数
public static void login(String userName,String passWord)throws UserNameException,PassWordException{
if(!userName.equals("wjh")){
throw new UserNameException("用户名错误!");
}
if(! passWord.equals("123456")){
throw new UserNameException("密码错误!");
}
System.out.println("登陆成功!");
}
这里要用Throws声明我们自定义的两个异常。判断是否满足条件不满足就抛出异常。
Main方法
public static void main(String[] args) {
System.out.println("请输入用户名和密码!");
Scanner scanner=new Scanner(System.in);
System.out.print("UserName: ");
String user=scanner.nextLine();
System.out.print("PassWord: ");
String word=scanner.nextLine();
try {
login(user,word);
} catch (UserNameException e) {
e.printStackTrace();
} catch (PassWordException e) {
e.printStackTrace();
}
finally {
scanner.close();
}
}
首先输入,不多说,输入完,把login的调用放在try中,用catch分别捕捉我们定义的异常。用finally关闭Scanner。
总代码
import java.util.Scanner;
class UserNameException extends Exception{
public UserNameException(String message) {
super(message);
}
}
class PassWordException extends Exception{
public PassWordException(String message) {
super(message);
}
}
public class TestDemo {
public static void login(String userName,String passWord)throws UserNameException,PassWordException{
if(!userName.equals("wjh")){
throw new UserNameException("用户名错误!");
}
if(! passWord.equals("123456")){
throw new UserNameException("密码错误!");
}
System.out.println("登陆成功!");
}
public static void main(String[] args) {
System.out.println("请输入用户名和密码!");
Scanner scanner=new Scanner(System.in);
System.out.print("UserName: ");
String user=scanner.nextLine();
System.out.print("PassWord: ");
String word=scanner.nextLine();
try {
login(user,word);
} catch (UserNameException e) {
e.printStackTrace();
} catch (PassWordException e) {
e.printStackTrace();
}
finally {
scanner.close();
}
}
}
运行结果
我们给定用户名为:wjh 密码为:123456