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

نام تاپیک: Try - Catch در VB6

  1. #1
    کاربر دائمی آواتار milad-fa
    تاریخ عضویت
    دی 1388
    محل زندگی
    گیلان
    پست
    220

    Post Try - Catch در VB6

    سلام دوستان،
    آیا کسی میدونه که چطور میشه در VB6 مثل #C از قابلیت Try-Cache بهره برد؟!
    آیا vb6 این قابلیت رو داره؟اگه نداره میشه با کد نویسی ایجادش کرد؟
    آیا vb.net این قابلیت رو داره؟!
    یک سوال دیگه هم دارم که شاید مربوط به این تالار نباشه:
    طریقه کارش به چه صورت هست،یعنی اگه تغییراتی در بانک ایجاد بشه و بعد مشکلی پیش بیاد آیا اثر اون تغییرات از بین میره؟!
    ممنون.
    با تشکر.

  2. #2
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: Try - Cache در VB6

    آیا کسی میدونه که چطور میشه در VB6 مثل C#‎‎‎‎ از قابلیت Try-Cache بهره برد؟!
    در VB شما باید با دستور on error این کا رو انجام بدید مثلا:
    On Error Goto labelname

    آیا vb6 این قابلیت رو داره؟اگه نداره میشه با کد نویسی ایجادش کرد؟
    با کد نویسی باید این قابلیت رو ایجاد کنید.
    آیا vb.net این قابلیت رو داره؟!
    بله vb.net این قابلیت رو داره
    طریقه کارش به چه صورت هست،یعنی اگه تغییراتی در بانک ایجاد بشه و بعد مشکلی پیش بیاد آیا اثر اون تغییرات از بین میره؟!
    نمیدونم
    البته این رو هم اظافه کنم :
    نحوه استفاده Try...Catch در vb.net :
    Try
    کدی که شک دارید امکان ایجاد خطا داشته باشه
    Catch
    کدی که در صورت خطا اجرا میشود
    Finally
    کدی که می خواهید بعد از دستورات Catch اجرا شود (اختیاریست)
    End Try
    البته اکثر برنامه نویس های VB (مثل خودم) سعی میکنند خودشون رو به زحمت نندازند و از کد دوست داشتنی زیر استفاده کنند:
    On Error Resume Next
    آخرین ویرایش به وسیله returnx : جمعه 14 آبان 1389 در 12:02 عصر

  3. #3
    کاربر دائمی آواتار milad-fa
    تاریخ عضویت
    دی 1388
    محل زندگی
    گیلان
    پست
    220

    Post نقل قول: Try - Cache در VB6

    یعنی try-cache به این صورت نیست که اگر دستورات try کامل انجام نشد بصورت خودکار تمامی اثرات دستورات اجرا شده رو از بین ببره؟!در این صورت چه فرقی با on error داره؟!

  4. #4
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: Try - Cache در VB6

    نقل قول نوشته شده توسط milad-fa مشاهده تاپیک
    یعنی try-cache به این صورت نیست که اگر دستورات try کامل انجام نشد بصورت خودکار تمامی اثرات دستورات اجرا شده رو از بین ببره؟!در این صورت چه فرقی با on error داره؟!
    اگه میخواین در صورتی که دستورات try کامل انجام نشد پس اعمال نشه میتونید از Try-Catch تو در تو استفاده کنید به این صورت:
    Try
    کدی که شک دارید امکان ایجاد خطا داشته باشه
    Catch
    کدی که در صورت خطا اجرا میشود
    Try
    کدی که باعث شود تغییرات اعمال نشود(به عبارتی الگوریتم به عقب برگرده)
    Catch
    هر کدی که نیز باشه رو مینویسیم
    End Try
    End Try
    البته شاید این راه اصولی نباشه...
    من که تفاوتی در Try-catch و on error ندیدیم ولی دلیل ایجاد این ساختار شاید منسوخ شدن دستور GOTO در برنامه نویسی مدرن باشه!

  5. #5
    کاربر دائمی آواتار milad-fa
    تاریخ عضویت
    دی 1388
    محل زندگی
    گیلان
    پست
    220

    Post نقل قول: Try - Cache در VB6

    من تصور میکردم دستوراتی که در try اجرا میشه اگر به هر دلیلی به پایان نرسه تمامی دستوراتی که اجرا شدن بصورت خودکار و بدون هیچ کدنویسی اثراتشون از بین میره(به عقب برمیگرده) و در قسمت cache میشه مثلاً یه msgbox گذاشت که 'تراکنش مورد نظر با موفقیت صورت نگرفت'.
    یعنی اینطور نیست و برای به عقب برگشتن تو net. هم باید کد نوشت؟!

  6. #6
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: Try - Cache در VB6

    نقل قول نوشته شده توسط milad-fa مشاهده تاپیک
    من تصور میکردم دستوراتی که در try اجرا میشه اگر به هر دلیلی به پایان نرسه تمامی دستوراتی که اجرا شدن بصورت خودکار و بدون هیچ کدنویسی اثراتشون از بین میره(به عقب برمیگرده) و در قسمت cache میشه مثلاً یه msgbox گذاشت که 'تراکنش مورد نظر با موفقیت صورت نگرفت'.
    یعنی اینطور نیست و برای به عقب برگشتن تو net. هم باید کد نوشت؟!
    شاید هم اینجوری که شما گفتید باشه دقیقا مطمئن نیستم حالا شما اگه میخوای تست کن تا هم شما و هم من مطمئن(فکر کنم غلط املایی دارم) شیم...

  7. #7
    کاربر دائمی آواتار milad-fa
    تاریخ عضویت
    دی 1388
    محل زندگی
    گیلان
    پست
    220

    Post نقل قول: Try - Cache در VB6

    نقل قول نوشته شده توسط ms2222 مشاهده تاپیک
    شاید هم اینجوری که شما گفتید باشه دقیقا مطمئن نیستم حالا شما اگه میخوای تست کن تا هم شما و هم من مطمئن(فکر کنم غلط املایی دارم) شیم...
    من net. رو سیستمم فعلاً نصب نیست.
    اگر برات مقدوره یه تست کن.
    دوستان دیگه اگر اطلاعاتی در این زمینه دارن لطفاً راهنمایی کنید.

  8. #8
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: Try - Cache در VB6

    نقل قول نوشته شده توسط milad-fa مشاهده تاپیک
    من net. رو سیستمم فعلاً نصب نیست.
    اگر برات مقدوره یه تست کن.
    دوستان دیگه اگر اطلاعاتی در این زمینه دارن لطفاً راهنمایی کنید.
    .net تو win7 نصب کردم الان هم تو Xp هستم ، برای همین به شما گفتم ولی مشکلی نیست یه چند لحظه وایسین بهتون خبر میدم...
    البته من هم از دوستانی که اطلاعاتی دارند ممنون میشم به ما کمک کنند.
    خوب من تست کردم حدس شما درست بود نگاه کنید من از این کد ها استفاده کردم :

    Public
    Class Form1
    Dim a AsInteger
    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
    a = a + 100000000000
    Catch ex As Exception
    MsgBox(a)
    EndTry
    EndSub
    PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
    a = 900000000
    EndSub
    End
    Class

    جوابی که به من داد همون :900000000 بود.
    (در ضمن اررور درست کردن هم واقعا کار سختیه
    آخرین ویرایش به وسیله returnx : جمعه 14 آبان 1389 در 14:58 عصر

  9. #9
    کاربر دائمی آواتار milad-fa
    تاریخ عضویت
    دی 1388
    محل زندگی
    گیلان
    پست
    220

    Post نقل قول: Try - Cache در VB6

    نه دوست عزیز شما باید دستور زیر رو تست کنید:
    PublicClass Form1
    Dim a AsInteger
    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
    a=a+1
    a = a + 100000000000
    Catch ex As Exception
    MsgBox(a)
    EndTry
    EndSub
    PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
    a = 900000000
    EndSub
    EndClass

  10. #10
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: Try - Cache در VB6

    خوب پس حالا حدس من درست از آب در اومد جواب شد :
    900000001
    ولی خوب با این وجود چه تفاوتی با On Error داره؟

  11. #11
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: Try - Catch در VB6

    سلام،
    عنوان تاپیک اصلاح شد. (Catch صحیح هست!)
    اینکه در تالار VB6 دنبال کاربرد Try-Catch باشید یه خورده عجیب هست!

    ولی خوب با این وجود چه تفاوتی با On Error داره؟
    On Error یک ساختار ساده و قدیمی و منسوخ شده برای هندل کردن خطاهای احتمالی برنامه هست. Try-Catch قدرتمند تر عمل میکنه و انعطاف پذیری بیشتری نسبت به On Error داره. به علاوه اینکه از ساختار مناسبی برخوردار هست. بر خلاف On Error Goto که ساختار منسوخ شده محسوب میشه.

    توی On Error ما خطا رو با توجه شمارش هندل میکنیم (Err.Number) اما تو NET. ، بر حسب نوع Exception رخ داده، خطا رو شناسایی می کنیم.

    چون Try-Catch ساختار بلاکی داره خوانایی بیشتری داره و استفاده ازش هم راحتر هست. علاوه بر بلاک های Try و Catch یک بلاک Finally هم هست که باعث میشه دستورات داخل بلاک Finally در هر شرایطی اجرا بشن. (چه خطایی رخ بده و چه خطایی رخ نده)

    برای اطلاعات بیشتر در مورد Try-Catch در بخش NET. جستجو کنید.
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

برچسب های این تاپیک

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

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