agar ( sana . getTime () > Sana . hozir ()) {
tashlash yangi DateIsInTheFutureError ( 'Siz vaqt hukmdorimisiz?' )
} qaytish sana }
harakat qilib ko'ring {
ruxsat bering sana = tahlil qilish ( so'rash ())
konsol . ma'lumot ( 'Sana' , sana . toISOString ())
} tutmoq ( e ) {
agar ( e misol InvalidDateFormatError ) {
konsol . xato ( masalan , xabar )
} boshqa agar ( e misol DateIsInTheFutureError ) {
konsol . ma'lumot ( masalan , xabar )
} else { otish e
}
}
Yaxshi ko'rinish. Endi biz nimadir muvaffaqiyatsizlikka uchraganligi haqida signal berishdan ko'proq narsani qila olamiz: nima uchun muvaffaqiyatsiz bo'lganini ko'rsatish uchun maxsus xatolikdan foydalanishimiz mumkin . Muammoni tuzatish uchun server jurnallarimizni tarashda ushbu xatolar foydali bo‘lishi mumkin yoki biz foydalanuvchilarga nima noto‘g‘ri qilganliklari va uni qanday tuzatishi mumkinligi haqida amaliy fikr bildirish uchun ularni maxsus xato terish tizimlariga joylashtirishimiz mumkin. Biz, shuningdek, bitta urinish / ushlashda istalgan sonli operatsiyalarni oʻrash orqali operatsiyalarni samarali tarzda bogʻlashimiz va joylashtirishimiz mumkin ( null ni qaytarishda qilganimiz kabi, har bir operatsiyani muvaffaqiyatsizlik borligini tekshirishimiz shart emas ).
Ushbu koddan foydalanish qanday tuyuladi? Aytaylik, katta urinib ko'rish / tutish bitta faylda, qolgan kod esa boshqa joydan import qilinadigan kutubxonada. Muhandis bunday turdagi xatolarni ( InvalidDateFormatError va DateIsInTheFutureError ) ushlashni yoki oddiy eski RangeError ni tekshirishni qanday biladi ? (Yodda tutingki, TypeScript istisnolarni funksiya imzosining bir qismi sifatida kodlamaydi.) Biz uni funksiya nomida ( parseThrows ) ko‘rsatishimiz yoki hujjat blokiga kiritishimiz mumkin:
/** * @throws {InvalidDateFormatError} Foydalanuvchi oʻz tugʻilgan kunini notoʻgʻri kiritgan. * @throws {DateIsInTheFutureError} Foydalanuvchi kelajakda tug'ilgan kunini kiritdi.
Do'stlaringiz bilan baham: |