Создание собственого исключения - C#
Формулировка задачи:
Написать программу, выполняющую следующие действия выводит на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры (если такого магазина нет, вывести исключение).
Почему то не работает исключение
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication24
- {
- class Program
- {
- class Product
- {
- string name;
- string shop;
- double price;
- public Product()
- {
- name = null;
- shop = null;
- price = 0;
- }
- public Product(string name, string shop, double price)
- {
- this.name = name;
- this.shop = shop;
- this.price = price;
- }
- public string Name{
- get{
- return name;
- }
- }
- public int find_str(string str)
- {
- if (name == str) return 1;
- return -1;
- }
- public string find_shop(Product[] s, string str)
- {
- int b = 0;
- try {
- for (int i = 0; i < s.Length; i++)
- {
- if (s[i].shop == str)
- {
- b = i;
- return s[i].name;
- }
- else return s[find_str(str)].name;
- }
- }
- catch(Exception ex)
- {
- throw new ArgumentOutOfRangeException("Такого магазину немає", ex);
- }
- return s[b].name;
- }
- }
- static void Main(string[] args)
- {
- Product[] p = new Product[10];
- p[0] = new Product("makaronu", "ekolan", 100);
- p[1] = new Product("olia", "ekolan", 40);
- p[2] = new Product("sur", "ekolan", 90);
- p[3] = new Product("bulba", "ekolan", 5);
- p[4] = new Product("chlib", "ekolan", 9);
- p[5] = new Product("moloko", "arsen", 14);
- p[6] = new Product("smetana", "arsen", 17);
- p[7] = new Product("kefir", "arsen", 9);
- p[8] = new Product("grechka", "arsen", 20);
- p[9] = new Product("rus", "arsen", 19);
- int choice = 0;
- string str;
- Console.WriteLine("1 - Find shop");
- Console.WriteLine("2 - Exit");
- while (choice != 2)
- {
- str = Console.ReadLine();
- for(int i = 0; i < p.Length; i++){
- Console.WriteLine(p[i].find_shop(p, str));
- }
- }
- }
- }
- }
Решение задачи: «Создание собственого исключения»
textual
Листинг программы
- class Product
- {
- string name;
- string shop;
- double price;
- public string Name { get { return name; } }
- public string Shop { get { return shop; } }
- public double Price { get { return price; } }
- public Product(string name, string shop, double price)
- {
- this.name = name;
- this.shop = shop;
- this.price = price;
- }
- }
- static void Main(string[] args)
- {
- Product[] products = new Product[] {
- new Product("makaronu", "ekolan", 100),
- new Product("olia", "ekolan", 40),
- new Product("sur", "ekolan", 90),
- new Product("bulba", "ekolan", 5),
- new Product("chlib", "ekolan", 9),
- new Product("moloko", "arsen", 14),
- new Product("smetana", "arsen", 17),
- new Product("kefir", "arsen", 9),
- new Product("grechka", "arsen", 20),
- new Product("rus", "arsen", 19)};
- Console.Write("Введите магазин: ");
- var store = Console.ReadLine();
- try
- {
- var searchResults = SearchProductStore(products, store);
- Console.WriteLine("Продукты:");
- foreach (Product product in searchResults)
- Console.WriteLine($"{product.Name}, цена: {product.Price}");
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- Console.ReadLine();
- }
- static List<Product> SearchProductStore(Product[] products, string storeName)
- {
- var res = new List<Product>();
- foreach (var product in products)
- if (product.Shop == storeName)
- res.Add(product);
- if (res.Count < 1)
- throw new Exception("Такого магазина нет");
- return res;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д