trycatch无法捕获的异常(java异常处理之try catch之异常捕获)

http://www.itjxue.com  2023-01-30 04:19  来源:未知  点击次数: 

try catch 捕获不到后台异常

你确定你的异常好像的sql异常吧你看看你往数据库插入的主键的值是不是有重复的啊

打印你要插入主键的值看看有没有重复也看看数据库里的值

为什么加了try catch还是不能捕获异常

前段时间学习《深入浅出Nodejs》时,在第四章 - 异步编程中作者朴灵曾提到,异步编程的难点之一是异常处理,书中描述" 尝试对异步方法进行try/catch操作只能捕获当次事件循环内的异常,对call back执行时抛出的异常将无能为力 "。

果然,项目测试过程中,连续两天遇到了Node.js进程Crash的问题。通过Debug Log,究其原因,发现正是书中提到的问题。

例如,

1 //test.js

2

3 var test = undefined;

4

5 try{

6 var f1 = function(){

7 console.log(test.toString());

8 }

9 }

10 catch(e){

11 console.log('error..');

12 }

13

14 //assume somewhere f1() will be called as an call back function

15 f1();

这里模仿f1函数是做为call back(回调)函数传递给其他函数,在其他函数执行过程中执行call back的函数。 从代码表面来看,很容易认为如果Line 7 ,

1 console.log(test.toString());

如果这行code发生异常,会自然认为其会被try catch捕获到,并不会引起进程的Crash 。但其实,运行结果是:

运行错误,Line 11的错误并没有打印,说明在程序中错误没有被Try Catch。而Nodejs作为单进程单线程程序,将会引起进程的Crash!

为什么java 中这段try catch 捕捉不到异常

原因大致有二:

一、没有发生异常

二、异常被底层代码捕获了,“这段try catch”里就看不到异常。

排查:打断点,单步调试跟踪

(责任编辑:IT教学网)

更多

推荐linux文章