79 lines
2.6 KiB
Java
79 lines
2.6 KiB
Java
package org.Exceptions;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
public class RuntimeExceptionDemo {
|
|
public static void main(String[] args) {
|
|
|
|
UserEntity user = new UserEntity("Ali", "Ahmadi", 1234567890L,
|
|
null, 989111111111L, null);
|
|
|
|
// 1. Handle NullPointerException / IllegalArgumentException
|
|
try {
|
|
validateEmail(user);
|
|
} catch (NullPointerException e) {
|
|
System.err.println("Caught NullPointerException: Email string cannot be null.");
|
|
} catch (IllegalArgumentException e) {
|
|
System.err.println("Caught IllegalArgumentException: " + e.getMessage());
|
|
}
|
|
|
|
// 2. Handle ArithmeticException
|
|
try {
|
|
calculatePayment(5000, 0);
|
|
} catch (ArithmeticException e) {
|
|
System.err.println("Caught ArithmeticException: Cannot divide payment by zero installments.");
|
|
}
|
|
|
|
// 3. Handle NumberFormatException
|
|
try {
|
|
convertUserAge("twenty");
|
|
} catch (NumberFormatException e) {
|
|
System.err.println("Caught NumberFormatException: Could not parse invalid age string.");
|
|
}
|
|
|
|
// 4. Handle IllegalStateException
|
|
try {
|
|
completeRegistration(user);
|
|
} catch (IllegalStateException e) {
|
|
System.err.println("Caught IllegalStateException: " + e.getMessage());
|
|
}
|
|
|
|
System.out.println("\nRuntimeExceptionDemo executed completely and safely!");
|
|
}
|
|
|
|
public static void validateEmail(UserEntity user) {
|
|
String email = user.getEmail();
|
|
|
|
// Fix to prevent immediate NullPointerException before regex matching
|
|
if (email == null) {
|
|
throw new NullPointerException("Email cannot be null");
|
|
}
|
|
|
|
String emailRegex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";
|
|
|
|
if (!Pattern.matches(emailRegex, email)) {
|
|
throw new IllegalArgumentException("Invalid email format");
|
|
}
|
|
|
|
System.out.println("User email is valid");
|
|
}
|
|
|
|
public static void calculatePayment(int totalAmount, int installmentCount) {
|
|
int payment = totalAmount / installmentCount;
|
|
System.out.println("Each installment : " + payment);
|
|
}
|
|
|
|
public static void convertUserAge(String ageInput) {
|
|
int age = Integer.parseInt(ageInput);
|
|
System.out.println("User age: " + age);
|
|
}
|
|
|
|
public static void completeRegistration(UserEntity user) {
|
|
if (user.getDateOfBirth() == null) {
|
|
throw new IllegalStateException(
|
|
"Registration cannot be completed. Date of birth is missing."
|
|
);
|
|
}
|
|
System.out.println("Registration completed");
|
|
}
|
|
} |