Tylko upewniam się, że rozumiem to dobrze. Czy poprawny schemat jest prawidłowy? Łapanie najbardziej specyficznych wyjątków w pierwszej kolejności w celu uchwycenia szerszych wyjątków z ogólnym haczykiem na końcu zestawu bloków catch.Czy kolejność bloków Catch jest ważna?
try
{
some code
}
catch(SomeSpecificException ex)
{
}
catch(LessSpecificException ex)
{
}
catch
{
//some general exception
}
Tak, to jest prawidłowa kolejność. –
duplikat http://stackoverflow.com/questions/3960259/catching-exceptions-c/3960283#3960283? – sloth
Jeśli masz na myśli "bardziej szczegółowy" jako "pochodzi od mniej specyficznej klasy wyjątków", to tak. Jeśli jednak nie odziedziczysz po drugim, możesz umieścić je w dowolnej kolejności. Można argumentować, że 'FileNotFoundOnAnyServerException' jest _semantically_ bardziej specyficzny niż' FileNotFoundException'. Ale jeśli nie dziedziczy po "FileNotFoundException", nie ma ryzyka konfliktu, a zatem kompilator nie dba o to. – Flater