Files
WS-05-exceptions-and-file-h…/src/main/java/org/Exceptions/RuntimeExceptionDemo.java
T

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");
}
}