در این سوال برای سادهتر کردن مدیریت خطاها و مرتب کردن استثناها میخواهیم تمام خطاهایی که رخ میدهد
را با یک قرارداد واحد در کلاسی به نام `ExceptionProxy` ذخیره کنیم.
برای این کار به ازای هر خطایی که رخ میدهد یک شی از کلاس `ExceptionProxy` میسازیم که دارای دو
خصوصیت است.
این خصوصیات عبارتند از ( `e` یک شی از کلاس `ExceptionProxy` است):
+ متن استثنای رخ داده. (تبدیلشده استثنا به رشته): `e.msg`
+ تابعی که باعث ایجاد استثنا شده: `e.function`
فایل [Solution.java](https://quera.ir/qbox/download/U8mN5W9bp1/Solution.java) را دانلود کرده و محتوای آن را ببینید.
از شما میخواهیم متد `transformException()` را پیادهسازی کنید. این متد یک لیست از توابع ورودی میگیرد. سپس هر کدام از توابع را صدا میکند (توابع بدون آرگومان هستند) و استثناهایی که رخ میدهد را با قرارداد بالا
به شیای از `ExceptionProxy` تبدیل کرده و در نهایت لیست خطاهای تبدیلشده را به همان ترتیب توابع
بر میگرداند. دقت کنید که اگر تابعی بدون خطا اجرا شد باید یک شی `ExceptionProxy` ساخته و مقدار `msg` آن را با `"OK!"`مقداردهی کنید.
### مثال
با اجرای متد `main` در کلاس `Solution` خروجی زیر باید در کنسول چاپ شود:
```
msg: / by zero
function: Devide[1/0]
msg: OK!
function: Devide[1/1]
```
# آنچه باید آپلود کنید:
یک فایل **zip** که وقتی آن را باز میکنیم، **فقط** فایل Solution.java را ببینیم.