Skip to content

Commit d9e26be

Browse files
committed
Error Handling
1 parent 2ace0ac commit d9e26be

28 files changed

Lines changed: 111 additions & 91 deletions

‎docs/docs/crates-and-packages/index.html‎

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

‎docs/docs/index.xml‎

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,30 @@ For above cases, we can use <code>panic!</code> macro.</li>
619619
</span></span></span><span class="line"><span class="cl"><span class="c1">// ⭐️ no "x", only single quotes
620620
</span></span></span></code></pre></div><p>Because of Unicode support, char is not a single byte, but four(32 bits).</p>
621621
<h2 id="i8-i16-i32-i64-i128">i8, i16, i32, i64, i128</h2>
622-
&lt;p&gt;8, 16, 32, 64 and 128 bit fixed sized signed(+/-) integer types&lt;/p&gt;</description></item><item><title>Smart Compiler</title><link>https://learning-rust.github.io/docs/smart-compiler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learning-rust.github.io/docs/smart-compiler/</guid><description>&lt;div class="alert alert-caution"&gt;
622+
&lt;p&gt;8, 16, 32, 64 and 128 bit fixed sized signed(+/-) integer types&lt;/p&gt;</description></item><item><title>Smart Compiler</title><link>https://learning-rust.github.io/docs/smart-compiler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learning-rust.github.io/docs/smart-compiler/</guid><description>&lt;h2 id="compile-time-errors"&gt;Compile-time Errors&lt;/h2&gt;
623+
&lt;p&gt;Rust focuses on strict code hygiene, and the compiler generates a highly specific set of warnings and errors to make it easier to identify and solve them.&lt;/p&gt;
624+
&lt;h3 id="typos"&gt;Typos&lt;/h3&gt;
625+
626+
627+
628+
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-rust" data-lang="rust"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
629+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;: &lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
630+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;company_name&lt;/span&gt;: &lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
631+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
632+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
633+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
634+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;steve&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
635+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;: &lt;span class="s"&gt;&amp;#34;Steve Jobs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt;
636+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;company_name&lt;/span&gt;: &lt;span class="s"&gt;&amp;#34;Apple&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt;
637+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;span class="w"&gt;
638+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
639+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// Destructuring fields&amp;#39; values to a and b
640+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fname&lt;/span&gt;: &lt;span class="nc"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;company_name&lt;/span&gt;: &lt;span class="nc"&gt;b&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;steve&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
641+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
642+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="fm"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{a}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="si"&gt;{b}&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
643+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
644+
645+
&lt;div class="alert alert-caution"&gt;
623646
&lt;div class="alert-header"&gt;
624647

625648

@@ -629,15 +652,12 @@ For above cases, we can use &lt;code&gt;panic!&lt;/code&gt; macro.&lt;/li&gt;
629652

630653
&lt;span&gt;
631654

632-
Caution
655+
Compile-time Error
633656

634657
&lt;/span&gt;
635658
&lt;/div&gt;
636659
&lt;div class="alert-body"&gt;
637-
&lt;p&gt;This needs a refresh!&lt;/p&gt;
638-
&lt;/div&gt;
639-
&lt;/div&gt;&lt;h2 id="why-compiler"&gt;Why Compiler?&lt;/h2&gt;
640-
&lt;p&gt;The Rust compiler does the most significant job to prevent errors in Rust programs. It &lt;strong&gt;analyzes the code at compile-time&lt;/strong&gt; and issues warnings, if the code does not follow memory management rules or lifetime annotations correctly.&lt;/p&gt;</description></item><item><title>STD, Primitives and Preludes</title><link>https://learning-rust.github.io/docs/std-primitives-and-preludes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learning-rust.github.io/docs/std-primitives-and-preludes/</guid><description>&lt;div class="alert alert-caution"&gt;
660+
&lt;p&gt;&lt;img src="https://learning-rust.github.io/docs/e1-error-typos.jpg" alt="Compile-time Error: Typos"&gt;&lt;/p&gt;</description></item><item><title>STD, Primitives and Preludes</title><link>https://learning-rust.github.io/docs/std-primitives-and-preludes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learning-rust.github.io/docs/std-primitives-and-preludes/</guid><description>&lt;div class="alert alert-caution"&gt;
641661
&lt;div class="alert-header"&gt;
642662

643663

0 commit comments

Comments
 (0)