Я новичок в C # и хотел лучше понять, как перехватывать исключения.Эти вопросы могут быть глупыми новичками.Они важны для меня, и я заранее извиняюсь.
Например, в классе Path System.IO, GetFullPath, может быть выброшено пять исключений: ArgumentException, SecurityException, ArgumentNullException, NotSupportedException и PathTooLongException.Я понимаю, что блоки перехвата должны быть организованы таким образом, чтобы сначала выявлялось самое конкретное исключение, а последним - самое общее исключение.
Вопрос 1. Когда MSDN предоставляет информацию о возможных исключениях, создаваемых классом, какузнать, какое исключение является наиболее конкретным, а какое наименее конкретным?Другими словами, как мне определить порядок исключений от наиболее специфического к наименее конкретному из того, что дает мне MSDN?
Вопрос 2: Нужно ли мне специально перехватывать все исключения явно или я буду использовать только наибольшее исключение родаперехватить все остальные исключения?Например, все еще используя класс Path, мне нужно сделать ...
try { ... }
catch(System.ArgumentNullException ane) { ... }
catch(System.NotSupportedException nse) { ... }
catch(System.IO.PathTooLongException ple) { ... }
catch(System.IO.SecurityException se) { ... }
catch(System.ArgumentException ae) { ... }
или просто ...
catch(System.ArgumentException ae) { ... }
перехватить все исключения?
Вопрос 3: является ли правильной синтаксическая структура для выполнения следующего в методе bool ...
try
{
... ;
return true;
}
catch(System.ArgumentException ae)
{
... ;
return false;
}