Создание собственого исключения - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы