Mam taką metodę:
int TForm1::x()
{
try
{
return 1;
}
__finally
{
y(); // y() się wykona
// return 2; // ok, z tym jest: E2551 Return statement not allowed in __finally block
}
z(); // z() się oczywiście nie wykona
return 3; // return też się nie wykona, ale bez tego jest: W8070 Function should return a value
}
O co tu chodzi? Dlaczego kompilator krzyczy, że "Function should return a value"? Przecież try kończy się returnem i zaraz po __finally metoda zwraca. Bez tego "return 3", który i tak się nie wykona mam warninga.