2012-09-03 20 views
6

¿Cómo puedo detectar excepciones de procesos externos que se combinan con # & & etc.?composición del proceso y excepciones

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 

Respuesta

3

Usted ya lo hace. Trate

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

El ! simplemente registra la excepción a la consola, que es un poco confuso cuando lo ves en el REPL, pero no se desplome.

+0

Cierto, mi programa no falló. Es solo la stacktrace que llega a error estándar también durante una ejecución normal del programa, no solo el REPL. Me estaba confundiendo. –