Перехват исключений - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, пытаюсь перехватывать исключения в оконном приложении таким кодом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
            AppDomain.CurrentDomain.UnhandledException += _UnhandledException;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        public static void _UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            MessageBox.Show("исключение! " + e.ExceptionObject.ToString());
        }
    }
}
А создаю исключение так:
   private void button2_Click(object sender, EventArgs e)
        {
            throw new Exception("тестовое исключение!11");
        }
В итоге исключение перехватывается, программа выводит сообщение об ошибке, однако после приложение завершается крешом "прекращена работа программы .." Как мне от этого избавиться? Заранее спасибо!

Решение задачи: «Перехват исключений»

textual
Листинг программы
System.Windows.Forms.Application.ThreadException += ApplicationThreadException;

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


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

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

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