<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite>Error - search.cpan.org</cite> (<time>2017-07-17 12:01:54 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/Error/lib/Error.pm">http://search.cpan.org/dist/Error/lib/Error.pm</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> 誤りを投げた <code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">try</anchor></code> 塊やそれよりも内側の塊を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句適用範囲</anchor>とする変数が消滅するのに伴って <code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DESTROY</anchor></code>
が自動的に呼出され、その中でも誤りが投げられることがあると、
誤りが乗っ取られて何が起きているのか分かりにくくなってしまうので注意が必要です。</p><p>例えば、単純化した次の code をみてください。<pre>try {
  my $test = bless {}, 'test';
  throw Error::Simple 'try';
} catch Error::Simple with {
  die shift-&gt;stringify;
};

sub test::DESTROY {
  throw Error::Simple 'DESTROY';
}</pre>これを実行すると <samp>DESTROY</samp> とだけ出て死にます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> この動作は仕様だと思います。</p></body></html>