Skip to content

Commit 2703e9a

Browse files
committed
December update
1 parent e28a0ae commit 2703e9a

File tree

15 files changed

+62
-38
lines changed

15 files changed

+62
-38
lines changed

js/search.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4719,6 +4719,12 @@ $(function(){
47194719
,
47204720
{ category: "Reference", value: "^methods", url: "/language/classtut#index-entry-$CIRCUMFLEX_ACCENTmethods" }
47214721
,
4722+
{ category: "Reference", value: "find_method (classes)", url: "/language/classtut#index-entry-classes_find__method" }
4723+
,
4724+
{ category: "Reference", value: "private_methods (classes)", url: "/language/classtut#index-entry-classes_private__methods" }
4725+
,
4726+
{ category: "Reference", value: "find_private_methods (classes)", url: "/language/classtut#index-entry-classes_find__private__methods" }
4727+
,
47224728
{ category: "Reference", value: "Overriding default gist method", url: "/language/classtut#index-entry-Overriding_default_gist_method" }
47234729
,
47244730
{ category: "Reference", value: "Abstract Class", url: "/language/glossary#index-entry-Abstract_Class" }
@@ -6033,6 +6039,8 @@ $(function(){
60336039
,
60346040
{ category: "Reference", value: "Emacs", url: "/language/unicode_entry#index-entry-Emacs" }
60356041
,
6042+
{ category: "Reference", value: "hash slice", url: "/language/hashmap#index-entry-hash_slice" }
6043+
,
60366044
{ category: "Reference", value: "non-string keys", url: "/language/hashmap#index-entry-non-string_keys" }
60376045
,
60386046
{ category: "Reference", value: "object hash", url: "/language/hashmap#index-entry-object_hash" }

language/5to6-perlfunc.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1404,7 +1404,7 @@ <h2 id="split"><a class="u" href="#___top" title="go to top of document">split</
14041404
<ul><li><p>split</p>
14051405
</li>
14061406
</ul>
1407-
<p><code>split</code> now requires a pattern. For the equivalent of Perl&#39;s behaviour of splitting on whitespace when no pattern is specified, use <a href="/routine/words">words</a> (or use <code>split</code> with <code>/\s+/</code> as the pattern and <code>:skip-empty</code> as a named argument).</p>
1407+
<p><code>split</code> now requires a pattern. For the equivalent of Perl&#39;s behavior of splitting on whitespace when no pattern is specified, use <a href="/routine/words">words</a> (or use <code>split</code> with <code>/\s+/</code> as the pattern and <code>:skip-empty</code> as a named argument).</p>
14081408
<p><a name="index-entry-sprintf_-_perlfunc"></a></p>
14091409
<h2 id="sprintf"><a class="u" href="#___top" title="go to top of document">sprintf</a></h2>
14101410
<ul><li><p>sprintf FORMAT, LIST</p>

language/classtut.html

Lines changed: 12 additions & 7 deletions
Large diffs are not rendered by default.

language/exceptions.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ <h1 class="title">Exceptions</h1>
6969
<tr class="toc-level-1"><td class="toc-number">1</td><td class="toc-text"><a href="#Ad_hoc_exceptions">Ad hoc exceptions</a></td></tr>
7070
<tr class="toc-level-1"><td class="toc-number">2</td><td class="toc-text"><a href="#Typed_exceptions">Typed exceptions</a></td></tr>
7171
<tr class="toc-level-1"><td class="toc-number">3</td><td class="toc-text"><a href="#Catching_exceptions">Catching exceptions</a></td></tr>
72-
<tr class="toc-level-2"><td class="toc-number">3.1</td><td class="toc-text"><a href="#Exception_handlers_and_enclosing_blocks">Exception handlers and enclosing blocks</a></td></tr>
72+
<tr class="toc-level-2"><td class="toc-number">3.1</td><td class="toc-text"><a href="#Exception_handlers_and_enclosing_blocks">Exception handlers and enclosing blocks</a></td></tr>
7373
<tr class="toc-level-1"><td class="toc-number">4</td><td class="toc-text"><a href="#try_blocks"><code class="pod-code-inline">try</code> blocks</a></td></tr>
7474
<tr class="toc-level-1"><td class="toc-number">5</td><td class="toc-text"><a href="#Throwing_exceptions">Throwing exceptions</a></td></tr>
7575
<tr class="toc-level-1"><td class="toc-number">6</td><td class="toc-text"><a href="#Resuming_of_exceptions">Resuming of exceptions</a></td></tr>
@@ -93,8 +93,8 @@ <h1 id="Typed_exceptions"><a class="u" href="#___top" title="go to top of docume
9393
<h1 id="Catching_exceptions"><a class="u" href="#___top" title="go to top of document">Catching exceptions</a></h1>
9494
<p>It&#39;s possible to handle exceptional circumstances by supplying a <code>CATCH</code> block:</p>
9595
<pre class="editor editor-colors"><div class="line"><span class="source raku"><span class="keyword control control-handlers raku"><span>die</span></span><span>&nbsp;</span><span class="support type exception raku"><span>X::IO::DoesNotExist</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>new</span></span><span>(</span><span class="keyword operator generic raku"><span>:</span></span><span class="routine name raku"><span>path</span></span><span>(</span><span class="string quoted double raku"><span class="punctuation definition string begin raku"><span>&quot;</span></span><span>foo/bar</span><span class="punctuation definition string end raku"><span>&quot;</span></span></span><span>),&nbsp;</span><span class="keyword operator generic raku"><span>:</span></span><span class="routine name raku"><span>trying</span></span><span>(</span><span class="string quoted double raku"><span class="punctuation definition string begin raku"><span>&quot;</span></span><span>zombie&nbsp;copy</span><span class="punctuation definition string end raku"><span>&quot;</span></span></span><span>));</span></span></div><div class="line"><span class="source raku"><span>&nbsp;</span></span></div><div class="line"><span class="source raku"><span class="keyword control closure trait raku"><span>CATCH</span></span><span>&nbsp;</span><span class="meta block raku"><span class="punctuation definition block raku"><span>{</span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol raku"><span>when</span></span><span>&nbsp;</span><span class="support type exception raku"><span>X::IO</span></span><span>&nbsp;</span><span class="meta block raku"><span class="punctuation definition block raku"><span>{</span></span><span>&nbsp;</span><span class="meta variable container raku"><span class="variable other identifier sigil raku"><span>$</span></span><span class="support class twigil raku"><span>*</span></span><span class="variable other identifier raku"><span>ERR</span></span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>say</span></span><span class="keyword operator generic raku"><span>:</span></span><span>&nbsp;</span><span class="string quoted double raku"><span class="punctuation definition string begin raku"><span>&quot;</span></span><span>some&nbsp;kind&nbsp;of&nbsp;IO&nbsp;exception&nbsp;was&nbsp;caught!</span><span class="punctuation definition string end raku"><span>&quot;</span></span></span><span>&nbsp;</span><span class="punctuation definition block raku"><span>}</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="punctuation definition block raku"><span>}</span></span></span></span></div><div class="line"><span class="source raku"><span>&nbsp;</span></span></div><div class="line"><span class="source raku"><span class="comment line number-sign raku"><span class="punctuation definition comment raku"><span>#</span></span><span>&nbsp;OUTPUT:&nbsp;«some&nbsp;kind&nbsp;of&nbsp;IO&nbsp;exception&nbsp;was&nbsp;caught!»</span></span></span></div></pre><p>Here, we are saying that if any exception of type <code>X::IO</code> occurs, then the message <code>some kind of IO exception was caught!</code> will be sent to <em>stderr</em>, which is what <code>$*ERR.say</code> does, getting displayed on whatever constitutes the standard error device in that moment, which will probably be the console by default.</p>
96-
<p>A <code>CATCH</code> block uses smartmatching similar to how <code>given/when</code> smartmatches on options, thus it&#39;s possible to catch and handle various categories of exceptions inside a <code>when</code> block.</p>
97-
<p>To handle all exceptions, use a <code>default</code> statement. This example prints out almost the same information as the normal backtrace printer.</p>
96+
<p>A <code>CATCH</code> block uses smartmatching similar to how <code>given/when</code> smartmatches on options, thus it&#39;s possible to catch and handle various categories of exceptions inside a <code>when</code> block. And it does so because, within the block, <code>$_</code> is set to the exception that has been raised.</p>
97+
<p>To handle all exceptions, use a <code>default</code> statement. This example prints out almost the same information as the normal backtrace printer; the <em>dot</em> methods apply to <code>$_</code>, which holds the <code>Exception</code> within the <code>CATCH</code> block.</p>
9898
<pre class="editor editor-colors"><div class="line"><span class="source raku"><span class="keyword control closure trait raku"><span>CATCH</span></span><span>&nbsp;</span><span class="meta block raku"><span class="punctuation definition block raku"><span>{</span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol raku"><span>default</span></span><span>&nbsp;</span><span class="meta block raku"><span class="punctuation definition block raku"><span>{</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="meta variable container raku"><span class="variable other identifier sigil raku"><span>$</span></span><span class="support class twigil raku"><span>*</span></span><span class="variable other identifier raku"><span>ERR</span></span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>say</span></span><span class="keyword operator generic raku"><span>:</span></span><span>&nbsp;</span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>message</span></span><span>;</span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat raku"><span>for</span></span><span>&nbsp;</span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>backtrace</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>reverse</span></span><span>&nbsp;</span><span class="meta block raku"><span class="punctuation definition block raku"><span>{</span></span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol raku"><span>next</span></span><span>&nbsp;</span><span class="keyword control conditional raku"><span>if</span></span><span>&nbsp;</span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>file</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>starts-with</span></span><span>(</span><span class="string quoted single single raku"><span class="punctuation definition string begin raku"><span>&#39;</span></span><span>SETTING::</span><span class="punctuation definition string end raku"><span>&#39;</span></span></span><span>);</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol raku"><span>next</span></span><span>&nbsp;</span><span class="keyword control conditional raku"><span>unless</span></span><span>&nbsp;</span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>subname</span></span><span>;</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="meta variable container raku"><span class="variable other identifier sigil raku"><span>$</span></span><span class="support class twigil raku"><span>*</span></span><span class="variable other identifier raku"><span>ERR</span></span></span><span class="keyword operator generic raku"><span>.</span></span><span class="support function raku"><span>say</span></span><span class="keyword operator generic raku"><span>:</span></span><span>&nbsp;</span><span class="string quoted double raku"><span class="punctuation definition string begin raku"><span>&quot;</span></span><span>&nbsp;&nbsp;in&nbsp;block&nbsp;</span><span class="meta interpolation raku"><span class="punctuation section embedded begin raku"><span>{</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>subname</span></span><span class="punctuation section embedded end raku"><span>}</span></span></span><span>&nbsp;at&nbsp;</span><span class="meta interpolation raku"><span class="punctuation section embedded begin raku"><span>{</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>file</span></span><span class="punctuation section embedded end raku"><span>}</span></span></span><span>&nbsp;line&nbsp;</span><span class="meta interpolation raku"><span class="punctuation section embedded begin raku"><span>{</span></span><span class="keyword operator generic raku"><span>.</span></span><span class="routine name raku"><span>line</span></span><span class="punctuation section embedded end raku"><span>}</span></span></span><span class="punctuation definition string end raku"><span>&quot;</span></span></span><span>;</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="punctuation definition block raku"><span>}</span></span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="meta block raku"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="punctuation definition block raku"><span>}</span></span></span></span></span></div><div class="line"><span class="source raku"><span class="meta block raku"><span class="punctuation definition block raku"><span>}</span></span></span></span></div></pre><p>Note that the match target is a role. To allow user defined exceptions to match in the same manner, they must implement the given role. Just existing in the same namespace will look alike but won&#39;t match in a <code>CATCH</code> block.</p>
9999
<h2 id="Exception_handlers_and_enclosing_blocks"><a class="u" href="#___top" title="go to top of document">Exception handlers and enclosing blocks</a></h2>
100100
<p>After a CATCH has handled the exception, the block enclosing the <code>CATCH</code> block is exited.</p>

0 commit comments

Comments
 (0)