1.视界

2.概述
flink 的架构在 flink 基本组件一节已经介绍过,其中的 TaskManager 负责监护 task 的执行,对于每个 task,flink 都会启动一个线程去执行,那么当用户的代码抛出异常时,flink 的处理逻辑是什么呢?
3.异常后的组件通信
一个 flink task 的线程 Runnable 类是 Task.java,我们观察到它的
run()
方法整个被一个大的 try catch 包住,这里重点关注 catch 用户异常之后的部分:
catch (Throwable t) {
// unwrap wrapped exceptions to make stack traces more compact</