برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوهی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبانهای مختلف، اینجا را ببینید.
در مورد سوالات پروژهای میتوانید انتخاب کنید که کدتان را به یکی از زبانهای پایتون یا جاوا بزنید و در سوال مربوطه میتوانید راهحلتان را ارسال کنید.
در این سوال برای سادهتر کردن مدیریت خطاها و مرتب کردن استثناها میخواهیم تمام خطاهایی که رخ میدهد
را با یک قرارداد واحد در کلاسی به نام ExceptionProxy
ذخیره کنیم.
برای این کار به ازای هر خطایی که رخ میدهد یک شی از کلاس ExceptionProxy
میسازیم که دارای دو
خصوصیت است.
این خصوصیات عبارتند از ( e
یک شی از کلاس ExceptionProxy
است):
e.msg
e.function
فایل Solution.java را دانلود کرده و محتوای آن را ببینید.
از شما میخواهیم متد transformException()
را پیادهسازی کنید. این متد یک لیست از توابع ورودی میگیرد. سپس هر کدام از توابع را صدا میکند (توابع بدون آرگومان هستند) و استثناهایی که رخ میدهد را با قرارداد بالا
به شیای از ExceptionProxy
تبدیل کرده و در نهایت لیست خطاهای تبدیلشده را به همان ترتیب توابع
بر میگرداند. دقت کنید که اگر تابعی بدون خطا اجرا شد باید یک شی ExceptionProxy
ساخته و مقدار msg
آن را با "OK!"
مقداردهی کنید.
با اجرای متد main
در کلاس Solution
خروجی زیر باید در کنسول چاپ شود:
یک فایل zip که وقتی آن را باز میکنیم، فقط فایل Solution.java را ببینیم.