Я написал искровую библиотеку в Scala, где я хотел бы сделать какое-то действие, прежде чем произойдет необработанное исключение в процессе драйвера (зарегистрируйте его, увеличьте показатель ошибки, ...).Я несколько раз пытался использовать setUncaughtExceptionHandler
в текущем потоке, но это не работает.
Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler {
override def uncaughtException(t: Thread, th: Throwable): Unit = {
// do something
}
Если я создаю другой поток, он работает нормально.Есть идеи, что я могу сделать, чтобы достичь своей цели?
Я вижу, что у Spark есть значение по умолчанию Exception handler
, которое, возможно, не может быть перезаписано?https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/SparkUncaughtExceptionHandler.scala