কেন আনহানডেলড এক্সেপশনএভেন্টআরগস? এক্সপশনটি কোনও অবজেক্ট নয় এবং কোনও অবজেক্ট নয়?


125

কেন UnhandledExceptionEventArgs.ExceptionObjectএকটি বস্তু এবং একটি না Exception?

আমি সংযুক্ত করছি AppDomain.UnhandledException

আমি এটিতে কাস্ট UnhandledExceptionEventArgs.ExceptionObjectকরতে Exceptionএবং এটিতে ইন্টারওগেট করতে চাই।

এবং এই মনে রেখে এটি কখনও নাল হবে?

MSDN ডকুমেন্টেশন exatly দরকারী নয়।

আনহ্যান্ডেল ব্যতিক্রম বস্তু পায়।

উত্তর:


147

এটি ব্যতিক্রম টাইপ করা যাবে না কারণ। নেটগুলিতে সিস্টেম নিক্ষেপ করা সম্ভব নয় et এটি সি # বা ভিবি.নেটে সম্ভব নয় তবে অন্যান্য সিএলআর ভিত্তিক ভাষায় এটি সম্ভব। তাই এপিআই অবশ্যই এই সম্ভাবনাটি সমর্থন করে এবং টাইপ অবজেক্টটি ব্যবহার করে।

সুতরাং এটি কখনই বাতিল হওয়া উচিত নয়, এটি বাস্তবে কোনও সিস্টেম নাও হতে পারে x

আরও তথ্যের জন্য সিএলআই স্পেক বিভাগ 10.5 (বিশেষত সিএলএস বিধি 40) দেখুন


3
ধন্যবাদ জ্যারেড আমি আপনার উত্তর এবং এখানে একটি লিঙ্ক এমএসডিএন সম্প্রদায়ের সামগ্রীতে যুক্ত করেছি
সাইমন

সুতরাং এটি সি # তে ব্যতিক্রম কাস্ট করা কোনও সমস্যা হবে না? ঠিক আছে?
মুবাশার

1
@ মুবাশারআহমাদ যদি সমস্যাটি থেকে উদ্ভূত হয় না তবে এটি কোনও সমস্যা হতে পারে System.Exception। এই ব্যতিক্রমটি কোনও সিএলআই-এর আনুগত্যমূলক ভাষা হতে পারে যা একটি নিক্ষেপ করার সিদ্ধান্ত নেয় System.Int32। সিএলআর এর নতুন সংস্করণগুলি System.Exception
যেকোনো উপায়ে এটি স্বয়ংক্রিয়ভাবে মোড়িত

1
@ মুবাশার আহমাদ আমি আপনাকে সুপারিশ করব যে আপনি 'হিসাবে' castালাই ব্যবহার করুন, যাতে আপত্তিটি টাইপ না করে, ব্যতিক্রম বাদ দেওয়ার পরিবর্তে কাস্টটি বাতিল হয়ে যায়।
ডেভিড.বারখুইজেন

তাহলে কেন try-catchব্লক অ-ব্যতিক্রমী অবজেক্টগুলি ধরতে দেয় না?
এজেন্টফায়ার

78

জ্যারেড ইতিমধ্যে যা উল্লেখ করেছে সেগুলি ছাড়াও, আপনি Exceptionযদি RuntimeCompatibilityAttribute(WrapNonExceptionThrows=true)আপনার সমাবেশে প্রয়োগ করা হয় তবে আপনি নিরাপদে । নেট ফ্রেমওয়ার্ক 2.0 এবং এর চেয়ে বেশি উচ্চতরতে কাস্ট করতে পারেন (সি # এবং ভিবি সংকলক দ্বারা স্বয়ংক্রিয়ভাবে যুক্ত হবে)।

যখন এই অ্যাট্রিবিউটটি প্রয়োগ করা হবে, ব্যতিক্রম ব্যতীত "ব্যতিক্রমগুলি" মোড়ানো হবে RuntimeWrappedException


3
তথ্যের জন্য আপনাকে ধন্যবাদ; আমি এটি ম্যানুয়ালি হ্যান্ডেল করছিলাম, অর্থাত্ এটি যদি ব্যতিক্রম ব্যর্থ করতে ব্যর্থ হয় তবে এটি রানটাইম-র্যাপড এক্সসেপশনে গুটিয়ে রাখে।
ডেনিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.