نمایش نتایج 1 تا 4 از 4

نام تاپیک: چرا عبارت Remaining program در این تکه کد اجرا نمی شود؟

  1. #1
    کاربر دائمی آواتار complexcoding
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    قزوین
    سن
    33
    پست
    744

    Exclamation چرا عبارت Remaining program در این تکه کد اجرا نمی شود؟

    با سلام می خواستم بدونم چرا عبارت remaining program در این تکه کد اجرا نمی شود
    int a, b = 0 ;
    Console.WriteLine( "My program starts" )
    try
    {
    a = 10 / b;
    }
    finally
    {
    Console.WriteLine ( "finally" ) ;
    }
    Console.WriteLine ( "Remaining program" ) ;


    خیلی ممنون از کمک شما.

  2. #2

    نقل قول: چرا عبارت Remaining program در این تکه کد اجرا نمی شود؟

    سلام.
    ابتدا کدهای درون try block اجرا میشه. از اونجاییکه مقدار b رو صفر قرار داده اید، Exception ای رخ میده. سپس کنترل به finally block منتقل میشه، اینجا عبارت finally نوشته میشه و در این نقطه، چون Exception مورد نظر رو Catch نکرده بودید، Throw خواهد شد و اجرا دیگه به خط Remaining Program نمیرسه.

    موفق باشید.

  3. #3
    کاربر دائمی آواتار complexcoding
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    قزوین
    سن
    33
    پست
    744

    نقل قول: چرا عبارت Remaining program در این تکه کد اجرا نمی شود؟

    خیلی ممنون ولی اگر throw یا همون پرتاب بشه مگه به خط بعد از finally نمی ره؟
    مگه finally خودش exceptoin را catch نمی کنه؟ یعنی پس کی finally به درد بخوره؟

  4. #4

    نقل قول: چرا عبارت Remaining program در این تکه کد اجرا نمی شود؟

    نقل قول نوشته شده توسط 09359779232 مشاهده تاپیک
    خیلی ممنون ولی اگر throw یا همون پرتاب بشه مگه به خط بعد از finally نمی ره؟
    مگه finally خودش exceptoin را catch نمی کنه؟ یعنی پس کی finally به درد بخوره؟
    خیر، finally خطا رو catch نمی کنه. وقتی در try خطایی رخ میده که exception ای باید throw بشه، سیستم بدنبال exception block مناسب میگرده تا اون exception رو بدست block مورد نظر بسپره. اگر بلاک مورد نظر وجود داشته باشه، اجرا به exception block منتقل میشه، و سپس کد درون finally اجرا میشه. اگر exception block وجود نداشته باشه، کد درون finally اجرا میشه و سپس exception مورد نظر throw میشه. در حقیقت finally محلی هستش که تضمین شده در صورت وقوع، یا عدم وقوع exception حتما اجرا خواهد شد. بنابراین کدی که در finally می نویسید کدی هستش که نیاز دارید در هر شرایطی اجرا بشه. فرضا میتونید کدهای Clean Up خودتون رو در اون بخش بنویسید...

    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •