دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۶
  • اردیبهشت

جلسه ۱۹ : آموزش مدیرت خطاها در پرل

  • دسته‌بندی‌ها :
جلسه ۱۹ : آموزش مدیرت خطاها در پرل
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمندان به دوره آموزشی پرل Perl. در جلسه گذشته با مدیریت و کار با دایرکتوری ها آشنا شدیم و به شما آموختیم که چگونه یک دایرکتوری را ایجاد نمایید و آن را تغییر دهید و در نهایت نیز با نحوه حذف دایرکتوری ها در پرل آشنا شدید. در این جلسه در کنار علاقمندان دوره پرل به آموزش مدیریت خطاها در پرل می پردازیم.

      آموزش مدیریت خطاها در پرل

      خطاها و توقف برنامه ها معمولاً به صورت هماهنگ رخ می دهند.
      اگر فایلی را باز می کنید وجود ندارد و این وضعیت را به درستی تعریف ننموده اید پس برنامه شما با کیفیت بدی طرح ریزی شده است.

      اگر خطایی رخ دهد، برنامه متوقف می شود بنابرین یک خطای معمولی معمولاً با انواع مختلفی از خطاها همراه خواهد بود.
      این خطاها ممکن است در حین اجرای برنامه رخ دهند و فرصت لازم برای واکنش مناسب و مدیریت خطاها را از ما سلب نمایند.
      اما در آموزش مدیریت خطاها در پرل چندین روش برای مقابله و مدیریت خطاها معرفی خواهد گردید.

      The if statement

      if statement روش خوبی برای چک کردن مقادیر بازگشتی از یک statement است؛ برای مثال :

      مثال : 

      در اینجا متغیر !$ پیام خطا واقعی را برمی گرداند.
      متناوبا، می توان جایی که این کار منطقی است یک statement را به یک خط در کاست.
      برای مثال :

      مثال : 

      تابع unless

      تابع unless مخالف و متضاد if statement است.
      statements ها می توانند با موفقیت از موقعیت ها status عبور نماید و فقط هنگامی که عبارت های بازگردانی شده اشتباه اند اجرا شود. برای مثال :

      مثال : 

      بهترین زمان استفاده از unless statement هنگامی است که قصد اعلام یک خطا یا خطاهای متوالی ای را دارد که فقط هنگام بیان اشتباهات رخ می دهند.
      این statement هنگام استفاده از یک unless statement نیز دارای تاثیراتی خواهد بود.

      مثال : 

      اگر در نمونه بالا اپراتور از بین برود؛ کار ما اثر خود را از دست خواهد داد.

      اپراتور سه جانبه

      برای تست های کوتاه می توان از اپراتور های شرطی استفاده نمود.

      مثال : 

      در این نمونه زیاد روشن نیست که ما در پی چه چیزی هستیم.
      اما اثر آن چیزی مشابه با استفاده از statement های if یا unless است.
      بهترین زمان استفاده از اپراتور های شرطی زمانی است که می خواهید یکی از دو مقادیر را با یک عبارت یا statement به سرعت بازگردانی نمایید.

      تابع warn

      تابع warn یا تابع هشدار وظیفه ایجاد هشدار را دارد.
      در هنگام استفاده این تابع پیامی به STDERR ارسال می شود، اما هیچ اقدام دیگری صورت نمی پذیرد.
      بنابرین این تابع زمانی که فقط قصدتان ارسال هشدار به یک کاربر باشد بسیار مفید است.

      مثال : 

      تابع die

      تابع die یا تابع مرگ شبیه به تابع هشدار کار می کند؛ جز آن که در آن صدای خروجی نیز وجود دارد.
      در یک اسکریپت معمولی، این تابع باعث تاخیر اجرا می گردد.
      در صورت بروز خطا در برنامه از این تابع استفاده کنید.

      مثال : 

      خطا در ماژول ها

      دو موقعیت متفاوت وجود دارد که باید آنها را مدیریت کرد.

      • گزارش یک خطا در یک ماژول که به نام فایل و شماره خط ماژول اشاره دارد هنگام اشکال زدایی یک ماژول یا هنگامی که به طور خاص می خواهید یک خطای مربوط به ماژول را به جای اسکریپت افزایش دهید مفید است.
      • گزارش خطا در یک ماژول که به اطلاعات فراخوان کننده اشاره دارد می تواند در اسکریپت خطایی ایجاد کند.
        خطاهای مطرح شده در این زمینه برای کاربر نهایی مفید هستند، زیرا آنها خطا را در ارتباط با خط اولی اسکریپت تماس می دهند.

      توابع die و warn در هنگام فراخوانی توسط ماژول عملکردی متفاوت با یکدیگر دارند.
      به مثال زیر که نمایش ساده ای از ماژول است توجه نمایید.

      مثال : 

      هنگام فراخوانی عملکردی شبیه به اسکریپت زیر خواهید داشت.

      مثال : 

      کد بالا نتیجه ای به صورت زیر دارد.

      مثال : 

      این امر ممکن است بیشتر یا کمتر از چیزی باشد که انتظارش را داشته اید و لزوماً چیزی نیست که می خواسته اید.
      از دیدگاه برنامه نویسان ماژول، اطلاعات مفید است، زیرا به مشخص کردن یک خطا در داخل ماژول کمک می کند.
      برای کاربر نهایی، اطلاعات ارائه شده نسبتا بی فایده است اما برای همه برنامه نویس سختگیر، کاملا بی فایده است.

      راه حل برای چنین مشکلی، ماژول کارپ Carp module می باشد که یک روش ساده برای گزارش اشتباهات در ماژول هایی است که اطلاعات مربوط به اسکریپت تماس را ارائه می دهند.
      ماژول کارپ دارای چهار تابع است : carp, cluck, croak و confess.
      در ادامه آموزش مدیریت خطاها در پرل به بررسی این چهار تابع خواهیم پرداخت.

      تابع carp

      تابع carp معادل تابع warn است و پیام ها را بدون اسکریپت و پرینت نام اسکریپت به STDERR پرینت می نماید.

      مثال : 

      هنگامی که از اسکریپت زیر استفاده می شود :

      مثال : 

      نتیجه ای مانند نتیجه زیر خواهید داشت.

      مثال : 

      تابع cluck

      تابع cluck یک نوع از supercharged carp است و همان اصولی را دنبال می کند که supercharged carp دنبال می نماید و stack trace یی از ماژول ها که منجر به فراخوانی تابع می شود را پرینت می نماید که شامل اطلاعات اصلی اسکریپت می شود.

      مثال : 

      هنگامی که از اسکریپت زیر استفاده می شود :

      مثال : 

      نتیجه ای مانند نتیجه زیر خواهید داشت.

      مثال : 

      تابع croak

      تابع croak معادل تابع die است جز آن که یک فراخوان به سطوح بالا تر را گزارش می نماید.
      درست مانند کاری که تابع die انجام می دهد تابع croak نیز بعد از گزارش خطا به STDERR اسکریپت را خارج می نماید.

      مثال : 

      هنگامی که از اسکریپت زیر استفاده می شود :

      مثال : 

      نتیجه ای مانند نتیجه زیر خواهید داشت.

      مثال : 

      مانند تابع carp، قوانین اصلی مشابهی در رابطه با line خط  و اطلاعات فایل file information با توجه به توابع die و warn وجود دارند.

      تابع confess

      تابع confess عملکردی مشابه با تابع cluck دارد.
      این تابع، تابع die را فراخوانی کرده و stack trace را به تمام اسکریپت های اولیه پرینت می نماید.

      مثال : 

      هنگامی که از اسکریپت زیر استفاده می شود :

      مثال : 

      نتیجه ای مانند نتیجه زیر خواهید داشت.

      مثال : 

      کلام آخر

      در این جلسه به آموزش مدیریت خطاها در پرل پرداختیم و به صورت مفصل انواع خطا ها و توابع لازم برای حل این خطا ها را مورد بررسی قرار دادیم.
      در جلسه بعد، یعنی بیستمین جلسه از سری جلسات پرل به آموزش کار با مقادیر خاص در این زبان خواهیم پرداخت.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۱۹ : آموزش مدیرت خطاها در پرل
      به اشتراک بگذارید