Member 14580921 Ответов: 1

Как я могу обработать исключение в библиотеке на языке Си#


У меня есть код здесь, где я вручную бросаю arguementnullexception. Мне нужно бросить пользователю, но когда я запускаю код, он переходит к оператору throw в части catch, а не в том месте, где пользователь вызывает его даже после повторного броска.

Что я уже пробовал:

        public Services(string hostName) 
        {
            try
            {
               
                if (hostName!=null)
                {
    
                }
                else
                {
                    ManuallyThrowException(hostName); //if not try catch it displays here
                }
            }
            catch(Exception e)
            {
                throw; //but it is displaying here if try catch
            }
        }

public static void Main()
{
        Services(null); // i need to display exeception here
}

Tomas Takac

Непонятно, о чем вы просите. Предполагается, что код должен перейти к перехвату в вашем методе, а затем то же самое исключение будет повторно брошено и поймано где-то вверх по цепочке вызовов. Или завершает работу вашей программы, если ее не поймали. Try-catch, как показано в вашем примере, бесполезен, вы можете также удалить его. В любом случае, я думаю, что вы должны обновить свой вопрос, а также показать код, который вызывает этот метод, но вы не получите исключение там, как ожидалось.

Member 14580921

Я изменил и добавил комментарии для ясности.Пожалуйста, помогите мне, как этого достичь

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вам нужно поймать исключение в вашем основном методе:

try
{
    Services(null); // i need to display exeception here
}
catch (Exception me)
{
    Console.WriteLine(me.Message);
}