public Mouse(int dpi, string manufacturer, string model, double price, MouseType type) { try { if (dpi <= 0) { throw new ArgumentException("Mouse cannot have a DPI less or equal to 0. Entered value: " + dpi.ToString()); } if (string.IsNullOrEmpty(manufacturer) || string.IsNullOrWhiteSpace(manufacturer)) { throw new ArgumentNullException(manufacturer); } if (string.IsNullOrEmpty(model) || string.IsNullOrWhiteSpace(model)) { throw new ArgumentNullException(model); } if (price <= 0) { throw new ArgumentException("Price cannot be less or equal to 0. Entered value: " + price.ToString()); } _dpi = dpi; _id = IDGenerator.NextID(); _manufacturer = manufacturer; _model = model; _price = price; _type = type.ToString(); AddToWarehouse(1); } catch (ArgumentNullException exception) { throw exception; } catch (ArgumentException exception) { throw exception; } catch (Exception exception) { throw exception; } }