java 用异常写一个简单登录
时间: 2023-03-31 14:04:35 浏览: 46
程序,如果用户名和密码不匹配,应该抛出什么异常?
在 Java 中,可以使用 IllegalArgumentException 异常来表示参数不合法的情况。在这个简单的登录程序中,如果用户名和密码不匹配,可以抛出 IllegalArgumentException 异常来提示用户输入的用户名或密码有误。
相关问题
用Java写一个注册登录简单代码
以下是一个简单的注册登录代码示例,使用Java语言和MySQL数据库:
```java
import java.sql.*;
public class RegistrationLogin {
// MySQL数据库连接信息
static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
static final String USER = "root";
static final String PASS = "password";
public static void main(String[] args) {
try {
// 注册MySQL JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 打开一个数据库连接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 注册
register(conn, "Alice", "mypassword");
// 登录
boolean loggedIn = login(conn, "Alice", "mypassword");
if (loggedIn) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
// 关闭数据库连接
conn.close();
} catch (Exception e) {
System.out.println("发生异常:" + e.getMessage());
}
}
// 注册
static void register(Connection conn, String username, String password) throws SQLException {
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
stmt.executeUpdate();
stmt.close();
}
// 登录
static boolean login(Connection conn, String username, String password) throws SQLException {
String sql = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
boolean loggedIn = rs.next();
rs.close();
stmt.close();
return loggedIn;
}
}
```
这个示例程序连接到名为“mydatabase”的MySQL数据库,其中包含一个名为“users”的表格,该表格具有“username”和“password”列。
在注册方法中,该程序将输入的用户名和密码插入到数据库中。在登录方法中,该程序从数据库中查询具有指定用户名和密码的用户。如果查询返回至少一行,则表示用户已登录成功。
请注意,这个示例程序使用了预处理语句来避免SQL注入攻击。预处理语句将输入参数绑定到SQL语句中,从而避免了潜在的安全漏洞。
用java写一个异常处理器
以下是一个简单的Java异常处理器示例:
```java
public class ExceptionHandler {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static int divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Division by zero");
}
return a / b;
}
}
```
在这个例子中,我们定义了一个名为`divide()`的方法,它接受两个整数参数,并计算它们的商。如果第二个参数为零,我们会抛出一个`ArithmeticException`异常,表示除以零错误。
在`main()`方法中,我们尝试调用`divide()`方法,但是由于第二个参数为零,所以抛出了一个异常。我们使用`try-catch`语句捕获这个异常,并在控制台输出错误消息。如果没有异常被抛出,我们将输出计算结果。
如果您想添加更多的异常处理逻辑,您可以在`catch`块中添加更多的代码。例如,您可以记录异常,发送电子邮件通知,或者调用其他方法来处理异常。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)