আমার অ্যাপ্লিকেশনটিতে কীভাবে ব্যতিক্রমগুলি পরিচালনা করা যায় তা স্থির করতে আমি আটকে আছি।
ব্যতিক্রম সহ আমার সমস্যাগুলি যদি আসে) 1) রিমোট সার্ভিসের মাধ্যমে ডেটা অ্যাক্সেস করা বা 2) একটি জেএসএন বিষয়টিকে ডিসরিয়ালাইজ করা। দুর্ভাগ্যক্রমে আমি এই দুটি কাজের জন্য সাফল্যের গ্যারান্টি দিতে পারি না (কাট নেটওয়ার্ক সংযোগ, আমার নিয়ন্ত্রণের বাইরে থাকা ত্রুটিযুক্ত জেএসওএন অবজেক্ট)।
ফলস্বরূপ, আমি যদি কোনও ব্যতিক্রমের মুখোমুখি হই তবে আমি কেবল এটি ফাংশনটির মধ্যেই ধরি এবং কলকে মিথ্যা ফিরিয়ে দেব। আমার যুক্তিটি হ'ল যে সমস্ত কলকারী সত্যই যত্নবান তা হ'ল যদি কাজটি সফল হয় তবে কেন এটি সফল হয়নি।
এখানে একটি সাধারণ পদ্ধতির কয়েকটি নমুনা কোড (জাভাতে) রয়েছে
public boolean doSomething(Object p_somthingToDoOn)
{
boolean result = false;
try{
// if dirty object then clean
doactualStuffOnObject(p_jsonObject);
//assume success (no exception thrown)
result = true;
}
catch(Exception Ex)
{
//don't care about exceptions
Ex.printStackTrace();
}
return result;
}
আমি মনে করি এই পদ্ধতিটি ঠিক আছে, তবে ব্যতিক্রমগুলি পরিচালনা করার জন্য সর্বোত্তম অনুশীলনগুলি কী তা জানতে আমি সত্যিই আগ্রহী (যদি কল স্ট্যাকের সমস্ত উপায় অবলম্বন করা উচিত তবে আমি কি সত্যই বাধা দেব?)।
মূল প্রশ্নের সংক্ষিপ্তসার:
- কেবল ব্যাতিক্রমগুলি ধরা কি ঠিক আছে তবে সেগুলি বুদবুদ না করে বা আনুষ্ঠানিকভাবে সিস্টেমকে অবহিত করা (লগ বা ব্যবহারকারীর কাছে কোনও বিজ্ঞপ্তির মাধ্যমে)?
- ব্যতিক্রমগুলির জন্য কী সর্বোত্তম অনুশীলনগুলি রয়েছে যার ফলে চেষ্টা / ক্যাপ ব্লক প্রয়োজন হয় এমন সমস্ত কিছুর ফলাফল হয় না?
অনুসরণ / সম্পাদনা করুন
সমস্ত প্রতিক্রিয়ার জন্য ধন্যবাদ, অনলাইনে ব্যতিক্রম পরিচালনার জন্য কিছু দুর্দান্ত উত্স পাওয়া গেছে:
- ব্যতিক্রম হ্যান্ডলিংয়ের সেরা অভ্যাস | ও'রিলি মিডিয়া
- .NET- এ সেরা অভ্যাসগুলি পরিচালনা করা ব্যতিক্রম
- সেরা অভ্যাসগুলি: ব্যতিক্রম পরিচালনা (নিবন্ধটি এখন আর্কাইভ.আর.পি. অনুলিপিটির দিকে নির্দেশ করে)
- ব্যতিক্রম-হ্যান্ডলিং অ্যান্টিপ্যাটার্নগুলি
দেখে মনে হয় যে প্রসঙ্গের ভিত্তিতে পরিবর্তিত হয় সেই বিষয়গুলির মধ্যে একটি ব্যতিক্রম ব্যয় পরিচালনা তবে সবচেয়ে বড় কথা, তারা কীভাবে কোনও সিস্টেমের মধ্যে ব্যতিক্রমগুলি পরিচালনা করে তার সাথে সামঞ্জস্য হওয়া উচিত।
অতিরিক্ত চেষ্টা / ক্যাচের মাধ্যমে বা কোনও ব্যতিক্রমকে এর সম্মান না দেওয়ার মাধ্যমে কোড-রটটির জন্য নজর রাখুন (একটি ব্যতিক্রম সিস্টেমকে সতর্ক করে দিচ্ছে, আরও কী সতর্ক করার দরকার?)
এছাড়াও, এটি m3rLinEz থেকে একটি দুর্দান্ত পছন্দ মন্তব্য ।
আমি অ্যান্ডারস হিজলসবার্গ এবং আপনার সাথে একমত হতে চাই যে অপারেশন সফল হয় বা না হয় সেক্ষেত্রে সর্বাধিক কলকারীরা যত্নশীল।
এই মন্তব্য থেকে এটি ব্যতিক্রমগুলি নিয়ে কাজ করার সময় ভাবার জন্য কিছু প্রশ্ন নিয়ে আসে:
- এই ব্যতিক্রমটি কী ছুঁড়ে দেওয়া হচ্ছে?
- কীভাবে এটি হ্যান্ডেল করা যায়?
- কলকারী কি ব্যাতিক্রমের বিষয়ে সত্যই চিন্তা করে বা কলটি সফল হয়েছিল কিনা সেগুলি তারা কেবল যত্ন করে?
- কোনও কলকারীকে কোনও সম্ভাব্য ব্যতিক্রম পরিচালনা করতে বাধ্য করা কি প্রশংসনীয়?
- আপনি কি ভাষার আইডেমগুলির প্রতি শ্রদ্ধাশীল হচ্ছেন?
- আপনার কি সত্যিই বুলেটের মতো সাফল্যের পতাকা ফিরিয়ে দিতে হবে? রিটার্নিং বুলিয়ান (বা কোনও int) জাভা (জাভাতে আপনি কেবল ব্যতিক্রমটি পরিচালনা করবেন) এর চেয়ে সি মানসিকতার চেয়ে বেশি।
- ভাষার সাথে সম্পর্কিত ত্রুটি পরিচালনার কনস্ট্রাক্টগুলি অনুসরণ করুন :)!