وقتی یه برنامه نوشته و اجرا میشه اگه یه چیزی به این برنامه داده بشه که توش تعریف شده نیست بعد بخوای که یه پیامی بده باید این پیام کجا براش تعریف بشه لطفا مثال بزن
پاسخ این سوال بسیار ساده است برای مثال برنامه ای داریم که نمره دانش آموز رو می گیره ولی کاربر به جای عددی از ۰ تا ۲۰ عدد ۲۵۰ را وارد می کنه و یا شاید متن وارد می کنه برای جلوگیری از ورود مقادیر نامناسب از ساختارهای شرطی استفاده می کنیم برای مثال برناه ای داریم که نمره دانش آموزی را می گیرد ما می خواهیم که نمره عددی مابین ۰ تا ۲۰ باشد و برای سایر گزینه ها پیغام خطا نشان بدهد پس داریم:
Private Sub CmdInput_Click
Dim Grade As Byte
Grade = txtGrade.Text
If Not (Grade >= 0 And Grade <= 20) Then
MsgBox "Your Inputed Value Is Not Valid Please Input Number Between 0 And 20", vbCritical 'Error Message
End If
End Sub
خب در مثال بالا با ساختار شرطی IF ورودی نمره را محدود به اعداد مابین ۰ و ۲۰ کردیم البته اگر پردازش دیگری بعد از گرفتن نمره می بایستی انجام شود و به دلیل اینکه عدد مربوطه نا معتبر وارد شده است پس از نمایش پیغام خطا بهتر است دستور Exit Sub را بری خروج زودرس از روال برای ادامه نیافتن پردازش در صورت اشتباه بودن عدد وارد شده استفاده کنیم و یا در صورت اینکه بخواهیم اگر کاربر عدد خواسته شده را نامعتبر وارد کرد عدد را دوباره بگیرد از یک حلقه بازخورد و یا یک مدیر خطا استفاده می کنیم روش اول قابل فهم تر است نمونه:
Private Sub CmdInput_Click
Inputing: ' FeedBack
Dim Grade As Byte
Grade = InputBox ("Plese Input Grade Of Stuudent") 'inputing Grade
If Not (Grade >= 0 And Grade <= 20) Then
MsgBox "Your Inputed Value Is Not Valid Please Input Number Between 0 And 20", vbCritical 'Error Message
Goto Inputing
End If
End Sub
خب اگر دقت کرده باشید در این مثال به جای استفاده از کادر متن برای گرفتن نمره از InputBox استفاده کردم برای اینکه InputBox تازمانی که ورودی را نگیرد مانع از ادامه یافتن کامپایلینگ می شود ولی در مورد کادر متن این گونه نیست و اگر در این مثال از کادر متن استفاده می کردیم شاهد پیغام خطاهای متوالی می بودیم و دلیل آن هم این است که زمانی که به بخش :Inputing رجوع میکردیم عدد قبلی را به عنوان عدد ورودی می شناخت و چون این عدد مابین ۰ و ۲۰ نبود پیغام خطا نشان می داد
در مثال های بالا قسمت هایی که بصورت سبز رنگ نوشته شده اند کامنت و یا همان توضیحات هستند و نوشتنشان الزامی نیست و TxtGrade نام کنترل کادر متن CMDInput نام کنترل دکمه فرمان است و Grade متغیری از نوع بایت است برای نگهداری نمره دانش آموز
دلیل استفاده از بایت هم مشخص است نوع داده بایت عددی را مابین ۰ و ۲۵۵ می گیرد و برای برنامه ما مناسب ترین گزینه است
البته استفاده از مدیریت خطا رو توصیه می کنم چون اگر کاربر متن را به جای عدد وارد کند شاهد پیغام خطا خواهیم بود
در این پست راجع به مدیر خطا حرفی نزدیم ولی در یکی از پست های آتی توضیح مفصلی درمورد مدیر خطا خواهم داد
امیدوارم که توانسته باشم پاسخ سوالتان را داده باشم
ضمنا کسانی که سوالی درمورد ویژوال بیسیک و سی شارپ دارند
می توانند درقسمت نظرات وبلاگ اعلام کنند