超哥前端记录
Java 线程池里 submit 和 execute 的异常处理差异,踩过一次才知道
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
超哥前端记录
社区首页
>
专栏
>
Java 线程池里 submit 和 execute 的异常处理差异,踩过一次才知道
Java 线程池里 submit 和 execute 的异常处理差异,踩过一次才知道
超哥前端记录
关注
修改于 2026-11-07 11:27:36
修改于 2026-11-07 11:27:36
17
0
举报
概述
线上一个定时任务偶尔会静默失败,日志里只有任务开始的信息,没有结束也没有异常堆栈,排查了半天才发现问题出在 ExecutorService.submit() 上。很多人在用线程池时把 execute 和 submit 当成可以互相替换的写法,实际上两者对异常的处理完全不同:execute 会把任务抛出的异常直接交给线程的 UncaughtExceptionHandler,而 submit 会把异常
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
java
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档