java ত্রুটি এবং ব্যতিক্রমগুলির মধ্যে পার্থক্য কি?




exception (4)

সম্ভাব্য ডুপ্লিকেট:
পার্থক্য betweeen ব্যতিক্রম এবং ত্রুটি

আমি কিভাবে জাভাতে ত্রুটি এবং ব্যতিক্রমগুলির মধ্যে পার্থক্য করতে পারি?


ত্রুটিটি বেশিরভাগ সময় আপনি এটি পরিচালনা করতে পারবেন না।

ব্যতিক্রমটি আপনাকে এর সাথে কিছু করার সুযোগ দেওয়ার উদ্দেশ্যে ছিল। অন্য কিছু চেষ্টা করুন অথবা লগ লিখুন।

try{
  //connect to database 1
}
catch(DatabaseConnctionException err){
  //connect to database 2
  //write the err to log
}

একটি ত্রুটি "একটি যুক্তিসঙ্গত অ্যাপ্লিকেশন ধরা করার চেষ্টা করা উচিত নয় যে গুরুতর সমস্যা নির্দেশ করে।"

যখন

একটি ব্যতিক্রম "এমন শর্তগুলি নির্দেশ করে যা যুক্তিসঙ্গত অ্যাপ্লিকেশন ধরাতে পারে।"

RuntimeException এবং তাদের subclasses বরাবর ত্রুটি RuntimeException ব্যতিক্রম। অন্যান্য সমস্ত ব্যতিক্রম ক্লাস ব্যতিক্রম checked

চেক আপ ব্যতিক্রম সাধারণত একটি প্রোগ্রাম পুনরুদ্ধার করতে পারেন এবং প্রোগ্রামের সাথে যেমন ব্যতিক্রম থেকে পুনরুদ্ধারের একটি ভাল ধারণা হতে পারে। উদাহরণগুলির মধ্যে রয়েছে FileNotFoundException , ParseException , ইত্যাদি। প্রোগ্রামারের এই ব্যতিক্রমগুলি পরীক্ষা- ParseException ব্লকটি ব্যবহার করে বা ParseException হবে বলে আশা করা হচ্ছে।

অন্যদিকে আমরা অপ্রচলিত ব্যতিক্রম আছে। এই ব্যতিক্রমগুলি যা সবকিছু ক্রমবর্ধমান হতে পারে না তবে তারা ঘটবে। উদাহরণগুলিতে ArrayIndexOutOfBoundException , ClassCastException , ইত্যাদি অন্তর্ভুক্ত রয়েছে। অনেক অ্যাপ্লিকেশনগুলি RuntimeExceptions এবং তাদের উপশ্রেণীগুলির জন্য RuntimeExceptions try-catch বা throws RuntimeExceptions ব্যবহার করবে তবে ভাষা দৃষ্টিকোণ থেকে এটি করতে হবে না। মনে রাখবেন যে RuntimeException থেকে পুনরুদ্ধার করা সাধারণত সম্ভব তবে ক্লাস / ব্যতিক্রমকে ডিজাইন করা ব্যক্তিরা এই ব্যতিক্রমগুলি পরীক্ষা করার জন্য শেষ প্রোগ্রামারের জন্য অপ্রয়োজনীয় বলে মনে করে।

ত্রুটি এছাড়াও unchecked ব্যতিক্রম হয় এবং প্রোগ্রামার এই সঙ্গে কিছু করার প্রয়োজন হয় না। আসলে ত্রুটিগুলির জন্য একটি try-catch ধারা ব্যবহার করা একটি খারাপ ধারণা। প্রায়শই, একটি ত্রুটি থেকে পুনরুদ্ধার সম্ভব নয় এবং প্রোগ্রামটি বন্ধ করার অনুমতি দেওয়া উচিত। উদাহরণগুলি OutOfMemoryError , Error , ইত্যাদি অন্তর্ভুক্ত।

মনে রাখবেন ত্রুটিগুলি অনির্ধারিত ব্যতিক্রম RuntimeExceptions , আমরা তাদের সাথে মোকাবিলা করার চেষ্টা করি না, তবে RuntimeExceptions (এছাড়াও অনির্ধারিত ব্যতিক্রম) মোকাবেলা করা ঠিক। চেক আপ ব্যতিক্রম কোড দ্বারা পরিচালিত করা উচিত।


সাধারণ ত্রুটির মধ্যে এটি এমন কোনও ব্যক্তির নিয়ন্ত্রণ বা অনুমান করতে পারে না। ব্যতিক্রমটি অনুমান করা যেতে পারে এবং পরিচালনা করা যেতে পারে। জাভা এক্সপেশান অ্যান্ড ত্রুটি এ থ্রোয়েবলের সাব ক্লাস। এটি প্রোগ্রাম নিয়ন্ত্রণের উপর ভিত্তি করে আলাদা হয়। OutOfMemory ত্রুটি যেমন কোন প্রোগ্রামার অনুমান করতে পারে এবং এটি পরিচালনা করতে পারে। এটি স্থিরভাবে আর্কিটেকচার, ওএস এবং সার্ভার কনফিগারেশনের উপর ভিত্তি করে নির্ভর করে। ব্যতিক্রম প্রোগ্রামার এটি পরিচালনা করতে পারে এবং অ্যাপ্লিকেশনের দুর্ব্যবহার এড়াতে পারে। উদাহরণস্বরূপ, যদি আপনার কোড কোনও ফাইলের জন্য সন্ধান করছে তবে আইও এক্সক্সেশনটি নিক্ষেপ করা হয়। প্রোগ্রামগুলি যেমন অনুমান করতে পারে এবং এটি পরিচালনা করতে পারে।


Error এবং Exception উভয় Throwable প্রসারিত Throwable , তবে বেশিরভাগ ক্ষেত্রেই Throwable একটি দৃশ্যকল্পের মধ্যে ফেলে দেওয়া হয় এবং Throwable Error থেকে অ্যাপ্লিকেশন প্রোগ্রামটি পুনরুদ্ধারের কোন উপায় নেই। উদাহরণস্বরূপ OutOfMemoryError

এমনকি অ্যাপ্লিকেশনটিও একটি Error বাড়াতে পারে তবে এটি কেবল একটি ভাল অনুশীলন নয়, পরিবর্তে অ্যাপ্লিকেশনগুলি পুনরুদ্ধারযোগ্য অবস্থার জন্য পরীক্ষার ব্যতিক্রম এবং প্রোগ্রামিং ত্রুটির জন্য রানটাইম ব্যতিক্রমগুলি ব্যবহার করতে হবে।





exception