Включение/выключение try/catch по условию на этапе компиляции. Возможно ли это? - C#
Формулировка задачи:
Всем доброго дня. При доработке и тестировании довольно большого проекта на ASP.NET (C#) возник вопрос: можно ли указать директиву DEBUG, с помощью которой можно включать/отключать блоки try/catch на этапе компиляции? Т.е. если идёт процесс разработки/отладки, то временно перехват исключений отключать, для релиза же нужно, чтобы все они включены. То есть чтобы нормально мог работать вот такой код:
В этом тестовом примере блоки try/catch почему-то не работают в любом случае, независимо от того, определена ли директива DEBUG. И ещё вопрос: возможно ли глобальное объявление директивы (#define DEBUG) (для всего проекта), чтобы не вставлять его в каждый файл?
#define DEBUG using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { #if DEBUG #else try { #endif // здесь какой-либо код, который может привести к генерации исключения // и в случае отладки гораздо удобнее получить "жёлтую страницу", чтобы понять причину throw new Exception("Тестовая ошибка!"); #if DEBUG #else } catch (Exception ex) { // вывод краткой информации об ошибке lbTest.Text = "Перехвачена ошибка! Тескт: " + ex.Message; }; #endif } }
Решение задачи: «Включение/выключение try/catch по условию на этапе компиляции. Возможно ли это?»
textual
Листинг программы
throw e;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д