آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نحوه استفاده از try - catch ؟

Reza  10 سال پیش  10 سال پیش
0 0

سلام

    حدود 100 خط از کدم به دلیل الگوریتم پیچیده ممکنه خطای NumberFormatException یا IndexOutOfBoundException بده . آیا میشه کل این 100 خط رو داخل try - catch بذارم . اگه میشه برای مثلا متد setOnClickListener یا متد های مشابه چی ؟ میشه کل متد رو داخل try - catch قرار داد ؟

مثل این :

try {
edtSpans.addTextChangedListener(new TextWatcher() {
. . . .
. . . .
. . . .
.
.
.
.
});
}
catch (NumberFormatException e) {
e.printStackTrace();
}
catch (IndexOutOfBoundException e) {
e.printStackTrace();
}

ممنون .

+1 0
اصلا راه معقولی نیست ! به کد نویسیتون بیشتر دقت کنید و روش دیگر الگوریتم نویسی رو پیش بگیرید < درآینده به مشکل بر میخورید < شما باید راهی پیدا کنید که برنامه باگ نده < و مشکل رو حلش کنید < نه اینکه مشکل رو دور بزنید < ! برای تجربه خودتون هم بهتره (10 سال پیش)
0 0
درسته ، ولی این تکه از کد من فقط نیاز به 40 خط داشت ، و برای اینکه Crash نکنه 60 خط دیگه اضافه کردم که شامل چندین for و if هست . 1 روز کامل روش وقت گذاشتم که Error نده و الان درست شده و هر کار میکنم دیگه خطا نمیده ( به نظر خودم احتمال خطا 0 % شده ) ، ولی اتفاقه دیگه ، میخواستم ببینم میشه کل یک متد مثل addTextChangedListener رو داخل try - catch گذاشت ؟ (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
بهروز  10 سال پیش
+1 0

خب try catch  فقط خطا رو کنترل میکنه ،نه اینکه خطا رو رفع کنه..شما ممکنه داخل بدن try  برخی موارد بخواید ست کنید و بعد از اینکه برنامه ارور بده عملا اون قسمت از کد شما درست اجرا نمیشه.و برنامه تون با مشکل همراه میشه.بهتره همون طور که دوستمون گفت کدتون بهتر بنویسید .تا جایی که میتونید باید catch رو پیدا کنید و حل کنید.فقط در برخی موارد به عهده شما نیست.مثلا وقتی شما thread.Sleep میکنید .اگر دستگاه نتونه اون مدت زمان بنابر دلایل زیادی مکث کنه ،باید با ترای کنترل کنید.که اگر این اتفاق بیوفته عملا دست شما نیست...نه اینکه برای کدهایی که خودتون تاحدی میتونید باگ پیدا کنید ، به اصطلاح این دوستمون فقط جلوی کرش کردن بگیرید و دور بزنید.

0 0
ممنون . حرف شما کاملا درسته . کدم به این صورته که در یک جعبه متن فقط باید عدد اعشاری و ویرگول قرار بگیره نه چیز دیگه و برای همین باید بررسی بشه که آیا اعداد بین ویرگول ها عدد معتبره یا نه . مثلا دو تا ممیز نداشته باشه یا اگه 2 ویرگول پشت سر هم قرار بگیره عدد بینشون رو 0 فرض کنه ، برای همین با 100 خط تمام حالت ها رو در نظر گرفتم و اگه هر طور متن وارد کنم لیست اعداد درست ست میشه ولی بازم اگه کاربر یه طوری عدد وارد کنه که غیر قابل پیش بینی بوده میخوام از برنامه نپره بیرون . فکر کنم میشه با try این اجازه رو بهش بدم که دوباره وارد کنه . (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .