diff --git a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java index 77cf26937..7ccefac17 100644 --- a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java +++ b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java @@ -17,9 +17,16 @@ public void addProduct(String productId, String name) { products.put(productId, new Product(productId, name)); } - public String placeOrder(String productId, int quantity) { + // Tells the method that it should expect to throw an exception + public String placeOrder(String productId, int quantity) throws ProductNotFoundException { + Product product = products.get(productId); String orderId = UUID.randomUUID().toString(); + + if (product == null) { + throw new ProductNotFoundException("Product with ID " + productId + " not found"); + } + orders.put(orderId, new Order(orderId, product, quantity)); return orderId; } @@ -28,8 +35,16 @@ public void cancelOrder(String orderId) { orders.remove(orderId); } - public String checkOrderStatus(String orderId) { + // Modified the method declaration to tell this method to expect and Exception. + public String checkOrderStatus(String orderId) throws OrderNotFoundException { Order order = orders.get(orderId); + + // Checks if the user has entered nothing + if (order == null) { + // Throws and error and sends back a message + throw new OrderNotFoundException("Order with ID " + orderId + " not found"); + } + return "Order ID: " + orderId + ", Product: " diff --git a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/OrderNotFoundException.java b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/OrderNotFoundException.java index 0104e0ab8..354eba02d 100644 --- a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/OrderNotFoundException.java +++ b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/OrderNotFoundException.java @@ -5,4 +5,9 @@ package com.codedifferently.lesson14.ecommerce; -class OrderNotFoundException {} +public class OrderNotFoundException extends Exception { + + public OrderNotFoundException(String message) { + super(message); + } +} diff --git a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java index 25aa814eb..8a173e51f 100644 --- a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java +++ b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java @@ -5,4 +5,8 @@ package com.codedifferently.lesson14.ecommerce; -class ProductNotFoundException {} +public class ProductNotFoundException extends Exception { + public ProductNotFoundException(String message) { + super(message); + } +}