Если бы я хотел, чтобы поймать все исключения для данных типов, кроме, и эти конкретные типы будут вновь брошены, чтобы быть пойманным в более высоком контексте, было бы лучше сделать:Который лучше поймать все исключения, за исключением заданных типов: поймать и реконструировать или поймать когда?
try
{
//Code that might throw an exception
}
//Catch exceptions to be handled in this context
catch (Exception ex) when (!IsExcludedException(ex))
{
//Handle leftover exceptions
}
Или было бы лучше :
try
{
//Code that might throw an exception
}
catch (SpecificException)
{
throw;
}
//Catch exceptions to be handled in this context
catch (Exception ex)
{
//Handle leftover exceptions
}
Или это не имеет значения? Есть ли способ лучше?
Вы никогда не узнаете, какие исключения происходят, и вы не сможете их обработать. Как насчет OutOfMemoryException? –
Это кажется довольно необычным. Обычно вы делаете наоборот. Но вы говорите: «Я знаю об этой ошибке, но я не могу справиться с этим. Но я могу справиться с чем угодно! ' – Jonesopolis
Чтобы дать контекст, в этом случае у меня есть статический метод в вспомогательном классе, который обрабатывает задачу обработки файлов, и если это вызывает конкретный тип исключения, я хочу, чтобы он был пойман код, вызывающий метод, чтобы он мог отображаться пользователю. Во всех остальных случаях я хочу обработать исключение в классе-помощнике. – Ceshion