Scala: Kann keine Ausnahme innerhalb eines Closures werfen

8

Disclaimer: absoluter Neuling in Scala: (

Ich habe folgendes definiert:

%Vor%

Ich nenne es so:

%Vor%

Während der Aufruf von someCodeThatThrowsMySpecificException einwandfrei funktioniert, wird die Ausnahme in tryAndReport nicht abgefangen.

Warum?

Danke!

    
Dmitriy 17.04.2010, 03:01
quelle

2 Antworten

12

Versuchen Sie, den Körper von Unit in => Unit zu ändern. Wie es jetzt definiert ist, berücksichtigt es body einen Codeblock, der in Unit ausgewertet werden soll. Wenn Sie call-by-name verwenden, wird es in try wie definiert ausgeführt und sollte abgefangen werden.

    
Jackson Davis 17.04.2010, 03:12
quelle
6

Das body in Ihrer tryAndReport -Methode ist kein Abschluss oder Block, es ist ein Wert (vom Typ Unit ).

Ich empfehle nicht, ein by-name Argument zu verwenden, sondern eine explizite Funktion.

%Vor%     
Randall Schulz 17.04.2010 03:19
quelle

Tags und Links