" কার্যকর জাভা " -তে জোশুয়া ব্লচ বলেছিলেন
প্রোগ্রামিং ত্রুটির জন্য পুনরুদ্ধারযোগ্য শর্ত এবং রানটাইম ব্যতিক্রমগুলির জন্য চেক করা ব্যতিক্রমগুলি ব্যবহার করুন (দ্বিতীয় সংস্করণে আইটেম 58)
আমি এটি সঠিকভাবে বুঝতে পারি কিনা তা দেখুন।
এখানে পরীক্ষিত ব্যতিক্রম সম্পর্কে আমার বোঝার জন্য:
try{
String userInput = //read in user input
Long id = Long.parseLong(userInput);
}catch(NumberFormatException e){
id = 0; //recover the situation by setting the id to 0
}
১. উপরেরটি কি চেক করা ব্যতিক্রম বলে বিবেচিত হয়?
২. রানটাইম এক্সেকশন কি চেক না করা ব্যতিক্রম?
এখানে একটি চেক করা ব্যতিক্রম সম্পর্কে আমার বোঝার বিষয়:
try{
File file = new File("my/file/path");
FileInputStream fis = new FileInputStream(file);
}catch(FileNotFoundException e){
//3. What should I do here?
//Should I "throw new FileNotFoundException("File not found");"?
//Should I log?
//Or should I System.exit(0);?
}
৪. এখন, উপরের কোডটিও কি চেক করা ব্যতিক্রম হতে পারে? আমি কি পরিস্থিতি এভাবে পুনরুদ্ধার করতে পারি? আমি কি পারি? (দ্রষ্টব্য: আমার তৃতীয় প্রশ্ন catch
উপরের ভিতরে রয়েছে)
try{
String filePath = //read in from user input file path
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
}catch(FileNotFoundException e){
//Kindly prompt the user an error message
//Somehow ask the user to re-enter the file path.
}
৫. লোকেরা কেন এটি করে?
public void someMethod throws Exception{
}
কেন তারা ব্যতিক্রম বুদ্বুদ আপ করতে দেয়? ত্রুটিটি পরিচালনা করা কি আরও ভাল হয় না? কেন বুদবুদ?
I. ব্যতিক্রমটি ব্যবহার করে কি আমার সঠিক ব্যতিক্রমটি উত্সাহিত করা উচিত?
নীচে আমার পড়া আছে
জাভাতে, কখন আমার একটি চেক করা ব্যতিক্রম তৈরি করা উচিত এবং কখন এটি রানটাইম ব্যতিক্রম হওয়া উচিত?
DataSeries
শ্রেণি রয়েছে যা ডেটা ধারণ করে যা সর্বদা সময় ভিত্তিক ক্রমে থাকতে হবে। এDataPoint
এর শেষে একটি নতুন যুক্ত করার পদ্ধতি রয়েছেDataSeries
। আমার সমস্ত কোড যদি পুরো প্রকল্প জুড়ে সঠিকভাবে কাজ করে থাকে তবে কোনওটিDataPoint
শেষের সাথে যুক্ত করা উচিত নয় যা ইতিমধ্যে শেষের একটিতে পূর্বের তারিখ রয়েছে। পুরো প্রকল্পের প্রতিটি মডিউল এই সত্যবাদ দিয়ে নির্মিত। তবে, আমি এই শর্তটি পরীক্ষা করে দেখি এবং যদি এটি ঘটে থাকে তবে একটি চেক না করা ব্যতিক্রম ছুঁড়ে ফেলি। কেন? যদি এটি হয়, আমি কে এটি করছে তা জানতে এবং এটি ঠিক করতে চাই।