# Fast Exception creation with raw backtrace

**URL:** <https://www.ruby-forum.com/t/fast-exception-creation-with-raw-backtrace/184888>\
**Category:** Development\
**Created:** [March 10, 2010, 1:16am UTC](https://www.ruby-forum.com/t/fast-exception-creation-with-raw-backtrace/184888 "2010-03-10T01:16:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [March 10, 2010, 1:16am UTC](https://www.ruby-forum.com/t/fast-exception-creation-with-raw-backtrace/184888/1 "2010-03-10T01:16:04Z")

</div>

e$B!!$5$5$@$G$9!%e(B

e$B!!e(BException  
e$B%\*%V%8%'%/%H$r:n@.$9$k$H$-!$I,$:!VFI$_$d$9$$%P%C%/%H%l!\<%9!We(B  
e$B$r@8@.$7$^$9$,!$;H$o$J$$$H$-$b7k9=$"$j$^$9!%;H$o$J$$\>l9g$b!$?M$K!VFI$_$de(B  
e$B$9$$%P%C%/%H%l!\<%9!W$r:n@.$9$k$N$OL5BL$@$J$H9M$($^$7$?!%e(B

e$BFI$\_$d$9$$%P%C%/%H%l!\<%9!'e(Bcaller e$B%a%=%C%I$G\<h$j=P$;$k%"%le(B

e$B!!$=$3$G!$Nc30%_%V%8%'%/%H@8@.;~$K$O!VFI$\_$d$9$$%P%C%/%H%l!\<%9!W$r@8@.$9e(B  
e$B$k$N$KI,MW$J\>pJs$@$1$r;}$C$F$_$-!$K\Ev$K!VFI$\_$d$9$$%P%C%/%H%l!\<%9!W$rI,e(B  
e$BMW$H$7$?$H$-$K=i$a$F:n$k!$$H$$$&$h$&$K$7$^$7$?!%e(B

e$B!!0J2\<$N%Z!\<%8$KI\>2A7k2L$r=q$-$^$7$?!%$=$l$J$j$K8z2L$,$"$k$h$&$G$9!%e(B  
[http://www.atdot.net/~ko1/diary/protect/201003.html#d10](http://www.atdot.net/~ko1/diary/protect/201003.html#d10)

e$B!!$J$k$Y$/8\_49@-$rJx$5$J$$$h$&$K:n$C$?$N$G$9$,!$0lE@Hs8\_49$,$"$j$^$7$F!$e(B  
e$B:#$^$G$ONc30@8@.;~$Ke(B Exception#set\_backtrace  
e$B$r$h$s$G$$$?$N$G$9$,!$$3$le(B  
e$B$r8F$P$J$/$J$j$^$9!%e(B

e$B!!%G%U%)%k%H$G$OLdBjL5$$$H;W$&$N$G$9$,!$e(BException#set\_backtrace  
e$B$,:FDj5Ae(B  
e$B$5$l$F$$$k$HLdBj$K$J$k$+$b$7$l$^$;$s!%$,!$$=$&$$$&MQES$,$"$k$+$O$h$/$o$+e(B  
e$B$j$^$;$s!%e(B

e$B!!$5$F!$F~$l$F$b$$$$$b$N$G$7$g$&$+!%e(B

e$B!!$A$J$\_$K!$e(Btest-all  
e$B$G$O\<:GT$,A}$($A$c$C$?$N$G!$$^$@%G%P%C%0$7$^$9!%e(B

e$BA0!'e(B7039 tests, 2169277 assertions, 5 failures, 3 errors, 0 skips  
e$B8e!'e(B7039 tests, 2169213 assertions, 15 failures, 12 errors, 0  
skips

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [March 10, 2010, 2:12am UTC](https://www.ruby-forum.com/t/fast-exception-creation-with-raw-backtrace/184888/2 "2010-03-10T02:12:14Z")

</div>

e$B6a1J$H?=$7$^$9!#e(B

> e$B!!$=$3$G!$Nc30%_%V%8%'%/%H@8@.;~$K$O!VFI$\_$d$9$$%P%C%/%H%l!\<%9!W$r@8@.$9e(B  
> e$B$k$N$KI,MW$J\>pJs$@$1$r;}$C$F$_$-!$K\Ev$K!VFI$\_$d$9$$%P%C%/%H%l!\<%9!W$rI,e(B  
> e$BMW$H$7$?$H$-$K=i$a$F:n$k!$$H$$$&$h$&$K$7$^$7$?!%e(B  
> e$B9bB.$K$J$k$N$O4r$7$$$G$9!#e(B  
> e$B$?$@e(B dRuby  
> e$B7PM3$N%a%=%C%I8F$S=P$7$GNc30$rJV$9;~$K!“e(BException e$B$,e(B  
> Masrhal e$B$G$-$J$$$He(B DRbRemoteError  
> e$B$KJQ49$5$l$F$7$^$&$N$G!”:$$ke(B  
> e$B$3$H$,$"$j$=$&$G$9!#e(B

set\_backtrace e$B$G!VFI$_$d$9$$%P%C%/%H%l!\<%9!W$,%;%C%H$5$l$?$ie(B  
Marshal  
e$B2DG=$K$J$k$H$+!"!X!VFI$_$d$9$$%P%C%/%H%l!\<%9!W$r@8@.$9$k$N$Ke(B  
e$BI,MW$J\>pJs!Y$NItJ,$,%\*%V%8%'%/%H$K$J$C$F$F!“$=$3$@$1e(B DRbObject  
e$B$Ge(B  
e$B;2\>HEO$7$G$-$k$J$I2sHrJ}K!$,$”$l$P$$$$$H;W$$$^$9!#e(B

# dRuby e$B7PM3$G!"FC$K%a%=%C%I8F$S=P$7$N?\<$$0LCV$G$NNc30$,CY$$$N$re(B

# e$B;~!946$8$F$$$k$N$G!"$G$-$?$i8e\<T$@$H4r$7$$$G$9!#e(B

> e$B!!0J2\<$N%Z!\<%8$KI\>2A7k2L$r=q$-$^$7$?!%$=$l$J$j$K8z2L$,$"$k$h$&$G$9!%e(B  
> [http://www.atdot.net/~ko1/diary/protect/201003.html#d10](http://www.atdot.net/~ko1/diary/protect/201003.html#d10)  
> e$B$3$Ne(B URL e$B$@$H%Q%9%o!\<%I$rMW5a$5$l$^$7$?!#e(B  
> e$BB?J,$3$C$A$G$9$h$M!#e(B  
> [だいありー](http://www.atdot.net/~ko1/diary/201003.html#d10)

> e$B!!%G%U%)%k%H$G$OLdBjL5$$$H;W$&$N$G$9$,!$e(BException#set\_backtrace e$B$,:FDj5Ae(B  
> e$B$5$l$F$$$k$HLdBj$K$J$k$+$b$7$l$^$;$s!%$,!$$=$&$$$&MQES$,$“$k$+$O$h$/$o$+e(B  
> e$B$j$^$;$s!%e(B  
> e$B:FDj5A$5$l$F$$$kNc$K$O?4Ev$?$j$”$j$^$;$s$,!“Nc30$N%/%i%9$re(B  
> e$BESCf$G@Z$jBX$($D$D%P%C%/%H%l!\<%9$O85$NNc30$N$b$N$K$9$k$H$$$&$3$H$re(B  
> e$B0J2\<$N$h$&$K$7$F$$$k$3$H$,$”$j$^$9!#e(B

begin  
…  
rescue HogeError  
raise FooError, “msg: #{$!.message}”, $@

# e$B$^$?$Oe(B

err = FooError.new(“msg: #{$!.message}”)  
err.set\_backtrace($@)  
raise err  
end

e$B$3$&$9$k$H$3$N;~$K0lC6!VFI$\_$d$9$$%P%C%/%H%l!\<%9!W$,@8@.$5$l$Fe(B  
e$B$=$l$r%;%C%H$9$k$3$H$K$J$k$H;W$$$^$9$N$G!“!V85$NI,MW$J\>pJs!W$@$1$re(B  
e$B0z$-7Q$0J}K!$,$”$l$PL5BL$,$J$/$F$$$$$J!\<!“$H$O;W$$$^$9!#e(B  
e$B$?$@0c$&=q$-J}$r$7$J$$$H$$$1$J$/$J$k$H;W$&$N$G!”$=$N287C$Ke(B  
e$B$"$:$+$k$K$O%9%/%j%W%H$r=q$-BX$($J$$$H$$$1$^$;$s$1$I!#e(B

e$B0J\>e!#e(B

Chikanaga Tomoyuki  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [March 10, 2010, 3:54am UTC](https://www.ruby-forum.com/t/fast-exception-creation-with-raw-backtrace/184888/3 "2010-03-10T03:54:04Z")

</div>

e$B!!$5$5$@$G$9!%e(B

(2010/03/10 10:11), Tomoyuki C. wrote::

> e$B$?$@e(B dRuby e$B7PM3$N%a%=%C%I8F$S=P$7$GNc30$rJV$9;~$K!“e(BException e$B$,e(B  
> Masrhal e$B$G$-$J$$$He(B DRbRemoteError e$B$KJQ49$5$l$F$7$^$&$N$G!”:$$ke(B  
> e$B$3$H$,$"$j$=$&$G$9!#e(B

e$B!!e(BMarshal e$B$O=PMh$k$h$&$K$7$h$&$H;W$C$F$\*$j$^$9!%e(B

> set\_backtrace e$B$G!VFI$_$d$9$$%P%C%/%H%l!\<%9!W$,%;%C%H$5$l$?$ie(B  
> Marshal e$B2DG=$K$J$k$H$+!"!X!VFI$_$d$9$$%P%C%/%H%l!\<%9!W$r@8@.$9$k$N$Ke(B  
> e$BI,MW$J\>pJs!Y$NItJ,$,%\*%V%8%'%/%H$K$J$C$F$F!“$=$3$@$1e(B DRbObject e$B$Ge(B  
> e$B;2\>HEO$7$G$-$k$J$I2sHrJ}K!$,$”$l$P$$$$$H;W$$$^$9!#e(B

e$B!!N\>J}$N%"%W%m!\<%A$H$7$h$&$H;W$$$^$9!%e(B

e$B!!$D$^$j!$e(Bset\_backtrace(Array)  
e$B$G@\_Dj$b=PMh$k$7!$2?$b$7$J$/$F$b!$:#$^$Ge(B  
e$BDL$j$Ke(B Marshal e$B2DG=$K$7$h$&$H;W$$$^$9!%e(B

> e$BB?J,$3$C$A$G$9$h$M!#e(B  
> [だいありー](http://www.atdot.net/~ko1/diary/201003.html#d10)

e$B!!$=$&$G$9!%BgJQ4VH4$1$J$3$H$r$7$F$7$^$$$^$7$?!%\<:Ni$7$^$7$?!%e(B

> raise FooError, “msg: #{$!.message}”, $@  
> e$B$“$:$+$k$K$O%9%/%j%W%H$r=q$-BX$($J$$$H$$$1$^$;$s$1$I!#e(B  
> e$B!!$^$!!$FC\<l%1!\<%9$@$H;W$$$^$9$N$G!$287C$K$”$:$+$l$J$$$1$I$-$A$s$HF0$/e(B  
> e$B$h!$$H$$$&$h$&$K$7$h$&$H;W$$$^$9!%e(B
