এটি একটি সম্পর্কিত প্রশ্ন: খারাপ স্টাইল / বিপজ্জনকতার পরে কাজ করার জন্য শেষ অবধি ব্যবহার কী?
রেফারেন্স করা Q তে শেষ অবধি কোডটি ব্যবহৃত কাঠামো এবং প্রাক-আনার প্রয়োজনীয়তার সাথে সম্পর্কিত। আমার প্রশ্নটি কিছুটা আলাদা এবং আমি বিশ্বাস করি এটি বিস্তৃত দর্শকদের কাছে জার্মানি। আমার বিশেষ উদাহরণটি একটি সি # উইনফর্ম অ্যাপ্লিকেশন, তবে এটি সি ++ / জাভা অবশেষে ব্যবহারের ক্ষেত্রেও প্রযোজ্য।
আমি বেশ কয়েকটি চেষ্টা-ধরা-শেষ অবধি ব্লকগুলি লক্ষ্য করছি যেখানে সেখানে প্রচুর কোড ব্যতিক্রম এবং ব্যতিক্রম হ্যান্ডলিং / ক্লিনআপের সাথে সম্পর্কিত নয় buried এবং ব্যতিক্রম এবং পরিচালনার সাথে ঘনিষ্ঠভাবে সম্পর্কিত কোডের সাথে খুব কড়া চেষ্টা-ধরা-অবরুদ্ধ ব্লকের দিকে আমি আমার পক্ষপাতিত্ব স্বীকার করব। আমি যা দেখছি তার কয়েকটি উদাহরণ এখানে দেওয়া হল।
চেষ্টা করুন ব্লকগুলিতে প্রচুর প্রাথমিক কল এবং ভেরিয়েবলগুলি কোডের দিকে যেতে পারে যা নিক্ষেপ করতে পারে set লগিংয়ের তথ্য সেটআপ পাবেন এবং সেই সাথে চেষ্টা ব্লকে চালিত হবে।
অবশেষে ব্লকগুলিতে ফর্ম / মডিউল / নিয়ন্ত্রণ ফর্ম্যাটিং কলগুলি থাকবে (অ্যাপ্লিকেশনটি সমাপ্ত হতে চলেছে, ক্যাচ ব্লকে প্রকাশিত হওয়া সত্ত্বেও) পাশাপাশি প্যানেলের মতো নতুন অবজেক্ট তৈরি করা হবে।
মোটামুটিভাবে:
পদ্ধতি নাম (...) { চেষ্টা { // পদ্ধতির জন্য প্রচুর কোড ... // কোড যা নিক্ষেপ করতে পারে ... // পদ্ধতি এবং একটি রিটার্নের জন্য আরও অনেক কোড ... } ধরা (কিছু) handle // হ্যান্ডেল ব্যতিক্রম} পরিশেষে { // ব্যতিক্রমের কারণে কিছু ক্লিনআপ, জিনিস বন্ধ করা // তৈরি করা স্টাফের জন্য আরও কোড (কোনও ব্যতিক্রম ছুঁড়ে ফেলতে পারে তা উপেক্ষা করে) ... // সম্ভবত আরও কিছু অবজেক্ট তৈরি করুন } }
কোডটি কাজ করে, তাই এর কিছু মূল্য আছে। এটি ভালভাবে আবদ্ধ হয় না এবং যুক্তিটি কিছুটা সংশ্লেষিত হয়। আমি চারপাশে কোড পরিবর্তন করার পাশাপাশি রিফ্যাক্টরিংয়ের ঝুঁকির সাথে (বেদনাদায়ক) পরিচিত, সুতরাং আমার প্রশ্নটি একইভাবে কাঠামোগত কোডের সাথে অন্যের অভিজ্ঞতা জানতে চাওয়াতে উত্সাহিত হয়।
খারাপ শৈলী পরিবর্তনগুলি ন্যায্যতা দেয়? কেউ কি একইরকম পরিস্থিতি থেকে খারাপভাবে পোড়া হয়েছে? আপনি কি এই খারাপ অভিজ্ঞতার বিবরণ ভাগ করে যত্ন নেবেন? এটিকে ছেড়ে দিন কারণ আমি অতিরিক্ত প্রতিক্রিয়া জানাচ্ছি এবং এটি স্টাইলের মতো খারাপ নয়? পরিপাটি করার জিনিসগুলি রক্ষণাবেক্ষণের সুবিধাগুলি অর্জন করবেন?
finally
সি # তে কী ঘটে)। সি ++ সমমান কী? আমি যা ভাবছি তা হল কোডের পরে কোড catch
এবং এটি সি # এর পরে কোডের জন্য একই প্রয়োগ করে finally
।
Environment.FailFast()
; যদি আপনার অবিচ্ছিন্ন ব্যতিক্রম থাকে তবে এটি কার্যকর করা যাবে না। আপনি যদি finally
ম্যানুয়ালি পুনরাবৃত্তি করেন এমন একটি ইেট্রেটর ব্লক থাকে এবং এটি আরও জটিল হয়ে ওঠে ।
finally
। সমস্ত ভাল ব্যবহারগুলি RAII / আরআরআইডি / এসবিআরএম (আপনার পছন্দমতো সংক্ষিপ্ত আকার) এর আওতায় আসে।