异常(简单实现用户登录)

该代码示例展示了如何在Java中自定义异常类型并进行处理。`TestDemo3`类中定义了`UserError`和`PasswordError`两个受查异常,用于处理用户名错误和密码错误的情况。在`main`方法中,通过`try-catch`捕获这些异常,并提供了简单的输入验证。此外,还存在一个`MyException`的运行时异常实例,用于演示非受查异常的处理。
摘要由CSDN通过智能技术生成
import java.util.Scanner;

/** User:yang */
class MyException extends RuntimeException { // 运行时异常
  public MyException(String message) {
    super(message);
  }
}

class UserError extends Exception { // 受查异常(编译时期的异常)
  public UserError(String message) {
    super(message);
  }
}

class PasswordError extends Exception {
  public PasswordError(String message) {
    super(message);
  }
}

public class TestDemo3 {
  private static String userName = "admin";
  private static String password = "123456";

  public static void main(String[] args) {
    try {
      System.out.println("请输入用户名");
      Scanner scanner = new Scanner(System.in);
      String userName = scanner.next();
      System.out.println("请输入密码");
      String password = scanner.next();
      login(userName, password);
    } catch (UserError userError) {
      userError.printStackTrace();
    } catch (PasswordError passwordError) {
      passwordError.printStackTrace();
    }
  }

  public static void login(String userName, String password) throws UserError, PasswordError {
    if (!TestDemo3.userName.equals(userName)) {
      throw new UserError("用户名错误");
    }
    if (!TestDemo3.password.equals(password)) {
      throw new PasswordError("密码错误");
    }
    System.out.println("登陆成功");
  }

  public static void main2(String[] args) {
    try {
      int i = 10;
      if (i == 10) {
        throw new MyException("i=10");
      }
    } catch (MyException e) {
      e.printStackTrace();

    } finally {

    }
  }

  public static void main1(String[] args) {
    try {
      System.out.println(10 / 0);
    } catch (ArithmeticException e) {
      e.printStackTrace();
    } finally {

    }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值