cancel
Showing results for 
Search instead for 
Did you mean: 

Unexpected Exception Recovery Behaviour

RajdeepMondal1
Level 3
Hello,can someone explain why this is happening?  The calculation stage is throwing an exception(as shown in the image), which is being recovered by 'Recover1' stage, then upon reaching 'Exception1' stage I expected the process to terminate or get recovered by 'Recover2', intead it is getting recovered by 'Recover1' stage(which is outside the block), thus entering an infinite loop. Please reply, Thanks
7 REPLIES 7

John__Carter
Staff
Staff
Make sure you have the 'preserve' checkbox in Exception1 ticked. Without it you are creating a second exception and it could be this that is creating the problem.

RajdeepMondal1
Level 3
The Preserve checkbox is ticked, the same thing happens(getting into an infinite loop) when it is unchecked. I am wondering why isn't the process getting terminated or passing onto 'Recover2' stage, why go back to 'Recover1' stage(which is outside the block)?  Thanks.

John__Carter
Staff
Staff
Thanks Raj, I've tried it too and get the same effect. I'm going to raise it as a bug because the infinite loop should not happen, the exception should be caught by Recover2.

RajdeepMondal1
Level 3
Thanks for your reply.  

HarshalJhingran
Level 4
It goes on a infinite loop because it is not able to find a valid path. By adding a resume stage, infinite loop can be prevented.

Srikanth_ReddyK
Level 2
Recover1 is outside block so this catches all exceptions on the page ,now we are catching exception and again throwing it with the help of exception1 stage inside RECOVERY MODE.we cannot recover any exception inside recovery mode so it just throws exceptoin to the page and then again Recover1 which is global catches it and infinite loop is happenig. To see  difference place the Recover1 stage and calculating stage inside the block and run.

Srikanth_ReddyK
Level 2
It is not a bug. Blueprism doesnot permit nested recovery of exception  inside  recovery mode .if an exception occurs inside recovery mode it just throws exception message on the page ie. As exception1 stage is throwing exception inside recovery mode so it cannot be recovered by Recover2 stage and throws exception on to the page eventually it is getting caught by Recover1 which is global to the page and infite loop occurs.