add exception handling in Product