Ответ 1
Да, вы выходите с кодом, отличным от нуля, вызывая либо java.lang.System.exit(n)
, либо лучше sys.exit(n)
(что эквивалентно Scala).
Если вы смешиваете в App
в своем основном объекте приложения, вы не определяете метод main
, а можете просто написать его содержимое в теле объекта напрямую.
например.
object Test extends App {
val a0 = args.headOption.getOrElse {
Console.err.println("Need an argument")
sys.exit(1)
}
println("Yo " + a0)
// implicit: sys.exit(0)
}