# Interrupt while raising an exception terminates the program with no error print

**URL:** <https://www.ruby-forum.com/t/interrupt-while-raising-an-exception-terminates-the-program-with-no-error-print/138667>\
**Category:** Development\
**Created:** [May 26, 2008, 3:32pm UTC](https://www.ruby-forum.com/t/interrupt-while-raising-an-exception-terminates-the-program-with-no-error-print/138667 "2008-05-26T15:32:41Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [May 26, 2008, 3:32pm UTC](https://www.ruby-forum.com/t/interrupt-while-raising-an-exception-terminates-the-program-with-no-error-print/138667/1 "2008-05-26T15:32:41Z")

</div>

e$B1sF#$G$9!#e(B

raise e$B\<B9TCf$Ke(B SIGINT e$B$G3d$j9~$s$@$H$-!"9b3NN($G2?$b8@$o$:$Ke(B  
e$B0[\>o=\*N;$7$^$9!#e(B

$ ./ruby -ve ‘begin; raise; rescue; retry; end’  
ruby 1.9.0 (2008-05-26 revision 16615) [i686-linux]  
^C  
$ echo $?  
1

$ ./ruby -ve ‘while true; raise rescue nil; end’  
ruby 1.9.0 (2008-05-26 revision 16615) [i686-linux]  
^C  
$ echo $?  
1

e$B$3$l$O;EMM$G$7$g$&$+!#e(B  
e$BJV$jCM$,e(B 1  
e$B$K$J$C$F$k$+$i5$$E$1!"$H$$$&$3$H$+$b$7$l$^$;$s$,!"e(B  
e$B5$$E$-$K$/$$$7860x$,$o$+$i$J$$$N$G4r$7$/$J$$$G$9!#e(B

e$B$3$N8=\>]$Oe(B 2 e$B$D$NLdBj$+$i@.$k$h$&$G$9!#e(B

- rb\_longjmp e$B$,8F$P$l$F$+$ie(B JUMP\_TAG e$B$9$k$^$G$K3d$j9~$\_$,e(B  
e$BH/@8$7$?$H$-e(B [FATAL] exception reentered e$B$K$J$C$F$7$^$&e(B

- [FATAL] exception reentered e$B$G%(%i!\<$,I=\<($5$l$J$$e(B

e$BA0\<T$OIaDL$N%W%m%0%i%`$G$b$?$^$K5/$-$=$&$J$s$G$9$,!"$I$&BP=he(B  
e$B$7$?$b$N$+$o$+$j$^$;$s!#3d$j9~$\_=hM}$rCY1d$9$k%U%i%0$,I,MW!)e(B

e$B8e\<T$OB?J,0J2\<$G$J$s$H$+$J$k$H;W$$$^$9!#e(Berror\_print e$B$ONc30$Ne(B  
e$BH/@8$K5$$r;H$$$^$/$C$F$k$h$&$J$N$GBg\>fIW$=$&$@$H;W$$$^$7$?$,!“e(B  
[ruby-core:1122] e$B$N$h$&$KNc30$G:F5”$7$Fe(B SEGV e$B$9$k$h$&$JNc$,e(B  
e$B$"$C$?$i$9$\_$^$;$s!#e(B

$ ./ruby -ve ‘begin; raise; rescue; retry; end’  
ruby 1.9.0 (2008-05-26 revision 16615) [i686-linux]  
:17: exception reentered (fatal)

# Index: eval\_error.c

— eval\_error.c (revision 16615)  
+++ eval\_error.c (working copy)  
@@ -215,8 +215,6 @@  
int status = EXIT\_FAILURE;  
rb\_thread\_t \*th = GET\_THREAD();

- if (rb\_thread\_set\_raised(th))
- return EXIT\_FAILURE;  
switch (ex & TAG\_MASK) {  
case 0:  
status = EXIT\_SUCCESS;  
@@ -247,8 +245,7 @@  
error\_pos();  
warn\_printf(": unexpected throw\n");  
break;
- 

```
 case TAG_RAISE:

```

- 

```
 case TAG_FATAL: {

```

- 

```
 case TAG_RAISE: {

```

VALUE errinfo = GET\_THREAD()-\>errinfo;  
if (rb\_obj\_is\_kind\_of(errinfo, rb\_eSystemExit)) {  
status = sysexit\_status(errinfo);  
@@ -261,6 +258,9 @@  
}  
break;  
}
- 

```
 case TAG_FATAL:

```

- 

```
   error_print();

```

- break;  
default:  
rb\_bug(“Unknown longjmp status %d”, ex);  
break;

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [May 27, 2008, 3:13pm UTC](https://www.ruby-forum.com/t/interrupt-while-raising-an-exception-terminates-the-program-with-no-error-print/138667/2 "2008-05-27T15:13:27Z")

</div>

e$B$J$+$@$G$9!#e(B

At Mon, 26 May 2008 22:30:59 +0900,  
Yusuke ENDOH wrote in [ruby-dev:34855]:

> e$B$3$N8=\>]$Oe(B 2 e$B$D$NLdBj$+$i@.$k$h$&$G$9!#e(B
> 
> - rb\_longjmp e$B$,8F$P$l$F$+$ie(B JUMP\_TAG e$B$9$k$^$G$K3d$j9~$\_$,e(B  
> e$BH/@8$7$?$H$-e(B [FATAL] exception reentered e$B$K$J$C$F$7$^$&e(B
> 
> - [FATAL] exception reentered e$B$G%(%i!\<$,I=\<($5$l$J$$e(B
> 
> e$BA0\<T$OIaDL$N%W%m%0%i%`$G$b$?$^$K5/$-$=$&$J$s$G$9$,!"$I$&BP=he(B  
> e$B$7$?$b$N$+$o$+$j$^$;$s!#3d$j9~$\_=hM}$rCY1d$9$k%U%i%0$,I,MW!)e(B

e$BBP=h$7$F$\_$^$7$?!#e(B

> e$B8e\<T$OB?J,0J2\<$G$J$s$H$+$J$k$H;W$$$^$9!#e(Berror\_print e$B$ONc30$Ne(B  
> e$BH/@8$K5$$r;H$$$^$/$C$F$k$h$&$J$N$GBg\>fIW$=$&$@$H;W$$$^$7$?$,!“e(B  
> [ruby-core:1122] e$B$N$h$&$KNc30$G:F5”$7$Fe(B SEGV e$B$9$k$h$&$JNc$,e(B  
> e$B$"$C$?$i$9$\_$^$;$s!#e(B

e$B:F5"%A%’%C%/$^$G30$7$F$7$^$&$N$O$A$g$C$H$^$:$$$h$&$J5$$,$7$^$9!#e(B
