Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Свойства исключений
Каждое исключение это объект либо класса System.Exception, либо производного от него. В классе Exception есть свойства, которые можно использовать при обработке исключений. Вот два из них: Message – текстовое описание ситуации, при которой создано исключение; Source – имя объекта или приложения, пославшего исключение. Прежде чем привести пример использования этих свойств, ещё раз обратимся к предыдущей программе, где использована catch-инструкция для FormatException. Если пользователь введёт синтаксически правильное числовое значение, которое выходит из диапазона представимых в системе чисел, то возникает ситуация, при которой будет сгенерировано исключение, отличное от FormatException. Например, в результате ввода: х = 1e99999< ENTER> произойдёт аварийное завершение программы с такой выдачей сообщения о необработанном исключении: Необработанное исключение: System.OverflowException: Значение было недопустимо малым или недопустимо большим для Double. Чтобы защитить программу от аварийного завершения при возникновении исключений этого типа, можно включить в неё ещё один обработчик исключений с заголовком: catch (OverflowException) Более общим решением является дополнение программы catch-инструкцией, настроенной на перехват всех исключений, относящихся к обработке арифметических данных ArithmeticException. Чтобы получить доступ к свойствам перехваченного исключения, необходимо в заголовке catch-инструкции вслед за типом исключения поместить имя, которое будет представлять исключение в блоке обработки. Предыдущая программа с учётом сказанного может быть такой: double x; while (true) { try { Console.Write(" x = "); x = double.Parse(Console.ReadLine()); Console.WriteLine(" res = " + x); } catch (FormatException ex) { Console.WriteLine(" ex.Message=" + ex.Message); Console.WriteLine(" ex.Source=" + ex.Source); continue; } catch (ArithmeticException ex) { Console.WriteLine(" ex.Message=" + ex.Message); Console.WriteLine(" ex.Source=" + ex.Source); continue; } break; } После блока try два обработчика. Второй перехватывает исключения типа ArithmeticException к которым относится и OverflowException. В каждом из обработчиков выводятся значения свойств Message и Source, а затем управление с помощью операторов continue передаётся следующей итерации цикла. Результаты выполнения программы могут быть такими: х = 1e999< ENTER> ex.Message=Значение было недопустимо малым или недопустимо большим для Double. ex.Source=mscorlib х = qwer< ENTER> ех.Message=Входная строка имела неверный формат. ex.Source=mscorlib х = 4.0< ENTER> ех.Message =Входная строка имела неверный формат. ex.Source=mscorlib х = 4, 0< ENTER> res = 4 Обратите внимание, что сообщения (значения свойства Message) различны для разных типов исключений. Источник генерации исключений во всех примерах один - базовая библиотека Microsoft (mscorlib). Примечание: При анализе исключения в catch-блоке полезно выводить значение выражения ex.toString(). В нём содержится информация как о самом исключении, так и о точке его генерации в коде программы
|