একটি ব্যতিক্রম হল একটি সমস্যা যা একটি প্রোগ্রাম কার্যকর করার সময় উদ্ভূত হয়। একটি C# ব্যতিক্রম হল একটি ব্যতিক্রমী পরিস্থিতির প্রতিক্রিয়া যা একটি প্রোগ্রাম চলাকালীন উদ্ভূত হয়, যেমন শূন্য দ্বারা ভাগ করার প্রচেষ্টা৷
ব্যতিক্রমগুলি একটি প্রোগ্রামের এক অংশ থেকে অন্য অংশে নিয়ন্ত্রণ স্থানান্তর করার একটি উপায় প্রদান করে। C# ব্যতিক্রম হ্যান্ডলিং চারটি কীওয়ার্ড -
এর উপর নির্মিত-
চেষ্টা করুন - একটি চেষ্টা ব্লক কোডের একটি ব্লক চিহ্নিত করে যার জন্য বিশেষ ব্যতিক্রমগুলি সক্রিয় করা হয়েছে। এটি এক বা একাধিক ক্যাচ ব্লক দ্বারা অনুসরণ করা হয়৷
-
ধরুন − একটি প্রোগ্রাম যেখানে আপনি সমস্যাটি পরিচালনা করতে চান সেই প্রোগ্রামের জায়গায় একটি ব্যতিক্রম হ্যান্ডলারের সাথে একটি ব্যতিক্রম ধরা পড়ে। ক্যাচ কীওয়ার্ডটি একটি ব্যতিক্রম ধরার ইঙ্গিত দেয়।
-
অবশেষে − পরিশেষে ব্লকটি একটি প্রদত্ত স্টেটমেন্টের সেট চালানোর জন্য ব্যবহার করা হয়, একটি ব্যতিক্রম নিক্ষেপ করা হোক বা নিক্ষেপ করা হোক না কেন। উদাহরণস্বরূপ, আপনি যদি একটি ফাইল খোলেন, তবে এটিকে অবশ্যই বন্ধ করতে হবে যে কোনো ব্যতিক্রম উত্থাপিত হোক বা না হোক।
-
নিক্ষেপ - একটি প্রোগ্রাম একটি ব্যতিক্রম ছুড়ে দেয় যখন একটি সমস্যা দেখায়। এটি একটি থ্রো কীওয়ার্ড ব্যবহার করে করা হয়।
C# ব্যতিক্রমগুলি ক্লাস দ্বারা প্রতিনিধিত্ব করা হয়। C# এর ব্যতিক্রম ক্লাসগুলি প্রধানত প্রত্যক্ষ বা পরোক্ষভাবে সিস্টেম থেকে প্রাপ্ত। ব্যতিক্রম ক্লাস। সিস্টেম থেকে প্রাপ্ত কিছু ব্যতিক্রম ক্লাস। ব্যতিক্রম ক্লাস হল System.ApplicationException এবং System.SystemException ক্লাস।
উদাহরণ
আসুন একটি উদাহরণ দেখি -
using System; using System.Reflection; public class Demo { public static void Main(){ Type type = typeof(Subject); try { FieldInfo fieldInfo = type.GetField("SubName"); MemberInfo[] info = type.GetMember("SubName"); Console.Write("Members = "); for (int i = 0; i < info.Length; i++) Console.WriteLine(" {0}", info[i]); Console.WriteLine("FieldInfo = {0}", fieldInfo); } catch (ArgumentNullException e){ Console.Write("{0}", e.GetType(), e.Message); } } } public class Subject{ public string SubName = "Science"; }
আউটপুট
এটি নিম্নলিখিত আউটপুট −
তৈরি করবেMembers = System.String SubName FieldInfo = System.String SubName
উদাহরণ
এখন আরেকটি উদাহরণ দেখা যাক -
using System; public class Demo { int result; Demo() { result = 0; } public void division(int num1, int num2) { try { result = num1 / num2; } catch (DivideByZeroException e) { Console.WriteLine("Exception caught = {0}", e); } finally { Console.WriteLine("Result = {0}", result); } } public static void Main(string[] args) { Demo d = new Demo(); d.division(100, 0); } }
আউটপুট
এটি নিম্নলিখিত আউটপুট −
তৈরি করবেException caught = System.DivideByZeroException: Attempted to divide by zero. at Demo.division(Int32 num1, Int32 num2) in d:\Windows\Temp\n0kebv45.0.cs:line 11 Result = 0