Handling یا مدیریت خطا در زبان برنامهنویسی Swift یک روش است که برنامه نویسان میتوانند با استفاده از آن، خطاها و استثناهایی که در هنگام اجرای برنامه رخ میدهند را شناسایی و کنترل کنند. این روش به شما امکان میدهد برنامه خود را به صورت یکپارچه و قابل پیشبینی طراحی کنید و از اتفاقات غیرمنتظره جلوگیری کنید.یکی از روشهای مدیریت خطا در Swift استفاده از نوع داده Error است. شما میتوانید خطاهای خود را تعریف کنید و با استفاده از آنها بتوانید از خطاها پیامهای خاصی را برای کاربران یا سیستم ارسال کنید.
نوع داده ی ERROR دقیقا چیه ؟
در Swift، نوع داده Error یک پروتکل هست که برای نمایش خطاها و استثناها استفاده میشه. این پروتکل در اساس یک پروتکل تمامعیار (protocol-oriented) است (مطالعه Protocol ها) و تعیین میکنه که نوع دادهای که به عنوان یک خطا یا استثنا استفاده میشود باید چه ویژگیها و عملکردها را داشته باشه.
پروتکل Error تعریف شده در Swift فقط یک توالی خالی از متدها و پراپرتی ها هست. به این معنی که هیچ پراپرتی یا متد اجباری برای این پروتکل تعریف نشده است. این به برنامهنویس امکان میدهد تا خطاهای خود را با دقت و توجه به نیازهای خاص خود تعریف کند.
وقتی یک نوع داده، مثل یک enum یا یک ساختار (struct)، از پروتکل Error پیروی کند، به آن خطا، قابل شناسایی یا (throwable) میگوییم. به عبارت دیگر، میتوانید یک نوع داده خاص را به عنوان Error Type در نظر بگیرید و آن را در صورت لزوم throw (پرتاب) کنید تا از طریق مکانیزمهای Error Handling مورد تشخیص و کنترل قرار گیرد.
استفاده از نوع داده Error در Swift به شما امکان میدهد خطاهای سفارشی خود را تعریف کنید و آنها را در ارتباط با عملیاتها و قسمتهایی از برنامهی خود که ممکن است خطا رخ دهند، استفاده کنید.
بیایید با یک مثال ساده توضیح دهم. فرض کنید که شما یک سیستم مدیریت فایل دارید و نیاز دارید برنامهای بنویسید که فایل مورد نظر را باز کند. اما اگر فایل مورد نظر پیدا نشود، یک خطا رخ داده است. در اینجا میتوانید از Error Handling برای کنترل خطاها استفاده کنید. به صورت زیر میتوانید کد را بنویسید:
تعریف یک نوع داده به نام FileError که از نوعError ارث برده است.تابعی بنام openFile که یک نام فایل دریافت میکند و ممکن است خطا رخ دهد.
در صورتی که خطا fileNotFound رخ دهد، پیام "فایل پیدا نشد" چاپ میشود.در غیر این صورت، پیام "خطای ناشناخته رخ داد" چاپ میشود.
توی این مثال، یک نوع داده به نام FileError تعریف شده که از Error به ارث میبرد. سپس تابع openFile فایل را میگشاید و در صورت عدم پیدا شدن فایل، خطا را پرتاب میکند. در بلاک do-catch، ما تلاش میکنیم تا تابع openFile را اجرا کنیم و در صورتی که خطای fileNotFound رخ دهد، پیام مناسب را چاپ میکنیم. در غیر این صورت، خطای ناشناخته رخ داده است.
استفاده از do-catch و روشهای دیگری از Error Handling در Swift به شما امکان میدهد تا با خطاهایی که در هنگام اجرا رخ میدهند مقابله کنید و رفتار مناسب را برای برنامه خود تعیین کنید.
موفق باشید.