Консольное приложение завершило работу с кодом 0 (0x0), хотя произошло необработанное исключение - PullRequest
1 голос
/ 17 марта 2020

Я пишу очень простой код. Net Framework (4.7) Консольное приложение и намеренно выбрасываю неиспользуемое исключение. Но все равно программа завершается с кодом 0 (0x0), который должен указывать на успешное выполнение.

Согласно документации Microsoft здесь Значение по умолчанию - 0 (ноль), что указывает на то, что процесс завершен успешно.

Мой вопрос: я ожидаю любой код выхода, но не 0. Может ли кто-нибудь объяснить мне, что я здесь скучаю?

Мой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {                    
            throw new Exception("Throw an exception");

            Console.WriteLine("Finishing program");
            Console.ReadLine();
        }
    }
}

Сообщение в окне вывода (отладка):

Произошло необработанное исключение типа 'System.Exception' в ConsoleApp2.exe

Бросить исключение

Программа '[7480] ConsoleApp2.exe' вышла с кодом 0 (0x0).

Большое спасибо

1 Ответ

1 голос
/ 18 марта 2020
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        bool continueThrow = true;
        static int Main(string[] args)
        {   
             try{
                 //doThings
             }catch(Exception ex){
                 //log the exception;
                 Environment.ExitCode = number;
                 if(continueThrow){
                      throw;
                 }
            } 
            Console.WriteLine("Finishing program");
            Console.ReadLine();

            return 0;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...