<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Exceptions ו-Logging on kodkod | מבואות קודקוד</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/</link><description>Recent content in Exceptions ו-Logging on kodkod | מבואות קודקוד</description><generator>Hugo</generator><language>he</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/index.xml" rel="self" type="application/rss+xml"/><item><title>Exceptions א': למה צריך טיפול בשגיאות, try ו-except</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/01-try-except/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/01-try-except/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;מהו &lt;strong&gt;Exception&lt;/strong&gt; (חריגה).&lt;/li&gt;
&lt;li&gt;למה תוכנה אמיתית צריכה &lt;strong&gt;לטפל&lt;/strong&gt; בשגיאות ולא לקרוס.&lt;/li&gt;
&lt;li&gt;התחביר &lt;code&gt;try&lt;/code&gt; / &lt;code&gt;except&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;טיפול &lt;strong&gt;שונה&lt;/strong&gt; בסוגי שגיאות שונים.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;דמיינו שרת מחשבון קטן: לקוח אחד שולח &lt;code&gt;&amp;quot;hello&amp;quot;&lt;/code&gt; במקום מספר, &lt;strong&gt;והשרת כולו קורס&lt;/strong&gt;. כל הלקוחות שבאים אחריו מקבלים &amp;ldquo;Connection refused&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Exceptions ב': else ו-finally — המבנה המלא</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/02-else-finally/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/02-else-finally/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;p&gt;בשיעור הקודם השתמשנו ב-&lt;code&gt;try&lt;/code&gt; וב-&lt;code&gt;except&lt;/code&gt;. למבנה יש עוד שני חלקים:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;else&lt;/code&gt;&lt;/strong&gt; — רץ &lt;strong&gt;רק אם לא הייתה שגיאה&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;finally&lt;/code&gt;&lt;/strong&gt; — רץ &lt;strong&gt;תמיד&lt;/strong&gt;, עם שגיאה או בלעדיה.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;דמיינו קוד שפותח חיבור ל-Database (נושא Backend ומסדי נתונים), מבצע פעולה וסוגר את החיבור. מה קורה אם הפעולה נכשלת באמצע? אם הסגירה כתובה אחרי הפעולה, היא &lt;strong&gt;לא תתבצע&lt;/strong&gt;, והחיבור יישאר פתוח. אחרי מאה כישלונות כאלה, השרת יקרוס כי נגמרו לו החיבורים.&lt;/p&gt;</description></item><item><title>Exceptions ג': raise — לזרוק שגיאה בעצמנו</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/03-raise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/03-raise/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;p&gt;עד עכשיו &lt;strong&gt;Python&lt;/strong&gt; זרקה שגיאות, ואנחנו &lt;strong&gt;תפסנו&lt;/strong&gt;. היום נלמד לזרוק בעצמנו, עם &lt;strong&gt;&lt;code&gt;raise&lt;/code&gt;&lt;/strong&gt;, כשהקוד שלנו מזהה מצב לא חוקי.&lt;/p&gt;</description></item><item><title>Logging א': למה print אינו Logging, ורמות הלוג</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/04-logging-basics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/04-logging-basics/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;מה זה &lt;strong&gt;Log&lt;/strong&gt; (יומן) ולמה מערכות אמיתיות כותבות אותו.&lt;/li&gt;
&lt;li&gt;למה &lt;strong&gt;&lt;code&gt;print&lt;/code&gt; אינו Logging&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;המודול &lt;strong&gt;&lt;code&gt;logging&lt;/code&gt;&lt;/strong&gt; של Python.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;חמש רמות&lt;/strong&gt; הלוג: &lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;warning&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, &lt;code&gt;critical&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;השרת שתכתבו בנושא Backend ומסדי נתונים ירוץ &lt;strong&gt;בלי שאף אחד יסתכל עליו&lt;/strong&gt;, אולי על מחשב בענן, באמצע הלילה. מחר בבוקר לקוח יגיד &amp;ldquo;ההזמנה שלי נעלמה בלילה&amp;rdquo;. איך תדעו מה קרה?&lt;/p&gt;</description></item><item><title>Logging ב': שמירת Logs לקובץ ותיעוד פעולות חשובות</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/05-logging-to-file/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/05-logging-to-file/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;איך כותבים לוגים &lt;strong&gt;לקובץ&lt;/strong&gt;, ולא רק למסך.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;מצבי כתיבה&lt;/strong&gt;: להוסיף לסוף הקובץ, או להתחיל מחדש.&lt;/li&gt;
&lt;li&gt;איך רושמים שגיאה &lt;strong&gt;עם כל הפרטים&lt;/strong&gt; (Traceback).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;מה לתעד&lt;/strong&gt;: אילו פעולות חשובות ובאיזו רמה.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;זוכרים את נושא מחשב, מערכת הפעלה ורשת? מה שעל המסך ובזיכרון נעלם כשהתוכנית נגמרת. &lt;strong&gt;קובץ&lt;/strong&gt; נשמר על ה-Storage. לוג על המסך עוזר רק למי שיושב מולו &lt;strong&gt;עכשיו&lt;/strong&gt;. לוג בקובץ אפשר לפתוח &lt;strong&gt;מחר&lt;/strong&gt;, לחפש בו ולהבין מה קרה בלילה.&lt;/p&gt;</description></item><item><title>מערך שיעור: Exceptions ו-Logging</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/instructor-errors-logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-errors-logging/instructor-errors-logging/</guid><description>&lt;p&gt;&lt;strong&gt;משך:&lt;/strong&gt; יום לימוד מלא — 6 שעות אקדמיות (270 דקות).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;מטרת השיעור:&lt;/strong&gt; הסטודנטים יבינו שכשלים הם חלק טבעי מתוכנה, ויידעו לכתוב קוד שמזהה בעיות (raise), מטפל בהן (try/except) ומתעד אותן (logging), במקום לקרוס או להסתיר אותן.&lt;/p&gt;</description></item></channel></rss>