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