اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

اثر پروانه‌ای نام پدیده‌ای است که به دلیل حساسیت سیستم‌های آشوب‌ناک به شرایط اولیه ایجاد می‌شود. این پدیده به این اشاره می‌کند که تغییری کوچک در یک سیستم آشوب‌ناک چون جو سیارهٔ زمین (مثلاً بال‌زدن پروانه) می‌تواند باعث تغییرات شدید (وقوع توفان در کشوری دیگر) در آینده شود.

ایده‌ٔ این‌که پروانه‌ای می‌تواند باعث تغییری آشوبی شود نخستین بار در ۱۹۵۲ در داستان کوتاهی به نام آوای تندر اثر ری بردبری مطرح شد. عبارت «اثر پروانه ای» هم در ۱۹۶۱ در پی مقاله‌ای از ادوارد لورنتس به وجود آمد. وی در صد و سی و نهمین اجلاس ای‌ای‌ای‌اس در سال ۱۹۷۲ مقاله‌ای با این عنوان ارائه داد که «آیا بال‌زدن پروانه‌ای در برزیل می‌تواند باعث ایجاد تندباد در تکزاس شود؟»

آخرین نظرات
  • ۱۳ بهمن ۰۱، ۱۵:۳۱ - حسنا سادات و سما سادات
    عالی

۴ مطلب با کلمه‌ی کلیدی «throw» ثبت شده است

  • ۲
  • ۰

کلیدواژه throw

بیان throw برای ابلاغ اتفاق یک موقعیت غیرعادی (exception) در حین اجرای برنامه ، استفاده می شود.

ملاحظات

خطای پرتاب شده ، شیئی است که از کلاس System.Exception مشتق شده است. برای مثال:

class MyException : System.Exception {}
// ...
throw new MyException();

معمولا" بیان throw به همراه بیان های try-catch یا try-finally مورد استفاده قرار می گیرد.

public class ThrowTest2
{
    static int GetNumber(int index)
    {
       int[] nums = { 300, 600, 900 };
       if (index > nums.Length)
       {
           throw new IndexOutOfRangeException();
       }
       return nums[index];

    }
    static void Main() 
    {
       int result = GetNumber(3);
    }
}
    /*
        Output:
        The System.IndexOutOfRangeException exception occurs.
    */
  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

بیان try-catch-finally

یک کاربرد عمومی از catch و finally به همراه هم، برای بدست آوردن و استفاده از منابع در بلوک try، دست و پنجه نرم کردن با شرایط استثنایی در بلوک catch و آزاد کردن منابع در بلوک finally می باشد.

برای اطلاعات و مثال های بیشتر در زمینه دوباره پرتاب سازی خطا ها به تاپیک های try-catch و "پرتاب استثناها" مراجعه کنید.

مثال

public class EHClass
{
    void ReadFile(int index)
    {
        // To run this code, substitute a valid path from your local machine
        string path = @"c:\users\public\test.txt";
        System.IO.StreamReader file = new System.IO.StreamReader(path);
        char[] buffer = new char[10];
        try
        {
            file.ReadBlock(buffer, index, buffer.Length);
        }
        catch (System.IO.IOException e)
        {
            Console.WriteLine("Error reading from {0}. Message = {1}", path, e.Message);
        }

        finally
        {
            if (file != null)
            {
                file.Close();
            }
        }
        // Do something with buffer...
    }
}

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

بیان try-catch

بیان try-catch شامل یک بلوک try و یک یا بیش از یک جمله catch که بعد از آن بلوک می آید، مدیریت کننده هایی را برای خطاهای مختلف تعیین می کند. وقتی یک خطا پرتاب (throw) می شود (اتفاق می افتد/خودمان عمدا آن خطا را تولید می کنیم)، زبان عمومی زمان اجرا (CLR - Common Language Runtime) به دنبال بیان catch ی می گردد که آن خطا را مدیریت می کند می گردد. اگر متدی که فعلا" در حال اجرا است چنین بلوک catch ی نداشته باشد، CLR به متدی که این متد فعلی را فراخوانی کرده نگاه می کند و همینطور استک را به سمت بالا بازرسی می کند (تا به بلوک catch مربوطه برسد). اگر هیچ بلوک catch ی پیدا نشد، آنگاه CLR یک پیام خطای-مدیریت-نشده به کاربر نشان می دهد و روند اجرای برنامه را متوقف می کند.

بلوک try حاوی کد محافظت شده است ولی ممکن است خطا برایش اتفاق بیفتد. بلوک به اجرا ادامه می دهد زمانی که خطایی پرتاب شود یا بلوک با موفقیت کامل شود. برای مثال، تلاش زیر برای قالبریزی یک شیئ null ، خطای NullReferenceExeption را برپا می کند:

object o2 = null;
try
{
    int i2 = (int)o2;   // Error
}

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

بیان foreach-in

سلام! امروز با توضیح مختصری از بیان یا به اصطلاح statement تکرار کننده foreach در خدمتتون هستم. در این مقاله و مقالات دیگری که در همین وبلاگ قرار دارند، منظور من از کلمه "بیان" همان statement هست.

گروهی از دستورهای جاسازی شده درون خود را برای هرکدام از عناصر آرایه ای، یا شئ کلکسیونی ای که رابط

System.Collection.IEnumerable

یا

System.Collection.Generic.IEnumerable<T>

 را پیاده سازی (Implement) کند، تکرار می کند.

  • غلامعلی حسینی بهجانی