2012-09-03 20 views
6

Come posso rilevare eccezioni da processi esterni che sono combinati con # & & ecc.?composizione del processo ed eccezioni

scala> import scala.sys.process._  
scala> try{ "throw " ! }catch{ case e: Exception => } 
res1: AnyVal =() 
scala> try{ "throw " #&& "ls" ! }catch{ case e: Exception => } 
Exception in thread "Thread-10" java.io.IOException: Cannot run program "throw": error=2, No such file or directory 

risposta

3

Già. Prova

try { 
val x = "throw" #&& "ls" ! 
} catch { 
case x => println("caught") 
} 

Il ! solo registra l'eccezione alla console, che è un po 'di confusione quando si vede nel REPL, ma non va in crash.

+0

Vero, il mio programma non si è bloccato. È solo lo stacktrace che arriva a std error anche durante una normale esecuzione del programma, non solo il REPL. Mi stava confondendo. –

Problemi correlati