Mam metodę jak ...zadeklarować, że metoda zawsze zgłasza wyjątek?
int f() {
try {
int i = process();
return i;
} catch(Exception ex) {
ThrowSpecificFault(ex);
}
}
To daje błąd kompilatora, „nie wszystkie ścieżki kodu zwracają wartość”. Ale w moim przypadku ThrowSpecificFault() zawsze wyrzuci (odpowiedni) wyjątek. Więc jestem zmuszony do postawienia wartości zwrotu na końcu, ale to jest brzydkie.
Celem tego wzoru jest przede wszystkim to, że "process()" to połączenie z zewnętrzną usługą sieciową, ale trzeba tłumaczyć wiele różnych wyjątków, aby dopasować oczekiwany interfejs klienta (według schematu fasady) .
Czy można to zrobić w jakiś czystszy sposób?
Powiązane: [Czy istnieje standardowy atrybut "never returns" dla funkcji C#?] (Http://stackoverflow.com/questions/1999181/is-there-a-standard-never-returns-attribute-for-c -functions) –