যে ব্যতিক্রম সর্বদা নিশ্চিত?

কল ফাংশন দ্বারা C ++ এর ব্যতিক্রমগুলি ধরা না (কোন কম্পাইল টাইম ত্রুটি নয়) প্রয়োজন। তাই বিকাশকারীর রায়ের উপর নির্ভর করে যে তাদের চেষ্টা / ধরা (জাভাতে অসদৃশ) ব্যবহার করে ধরা।

কোনও উপায় আছে কিনা তা নিশ্চিত করার জন্য যে ফাঁস করা ব্যতিক্রমগুলি সবসময় কল ফাংশন দ্বারা চেষ্টা / ধরা ব্যবহার করে ধরা হয়?

0
জাভা প্রিস্রাস্তান পদ্ধতিতে ব্যতিক্রম বৈশিষ্ট্যের ঐক্যমত্য হল যে এটি খারাপভাবে ভেঙে যায়।
যোগ লেখক Pete Becker, উৎস

7 উত্তর

না।

কেন না কেন ব্যতিক্রম প্রেক্ষাপটে একটি প্রগামিক বর্ণন দেখুন।

আপনি এই "সাহায্য" করতে পারেন একমাত্র উপায় আপনার ফাংশন নিক্ষেপ করা হতে পারে আপ ডকুমেন্ট হয়, এটা ঘোষণা ঘোষণা হেডার ফাইল একটি মন্তব্য হিসাবে। এই কম্পাইলার বা কিছু দ্বারা প্রয়োগ করা হয় না। যে উদ্দেশ্যে কোড পর্যালোচনা ব্যবহার করুন

0
যোগ

আপনার প্রশ্নের সুযোগ বাইরে আমি এই পোস্ট না বিতর্ক কিন্তু জাভা মধ্যে আসলে ব্যতিক্রম 2 ধরনের, চেক এবং অচিহ্নিত আছে। মৌলিক পার্থক্য হচ্ছে, c [++] এ অনেকের মতই, আপনি একটি অনির্বাচিত ব্যতিক্রম ধরতে হবে না।

একটি ভাল রেফারেন্সের জন্য এই চেষ্টা করুন

0
যোগ

অথবা আপনি জটিল ব্যতিক্রমগুলি নিক্ষেপ শুরু করতে পারে। অবশ্যই, একটি অ্যাক্সেস লঙ্ঘন ব্যতিক্রম ধরা আপনার ব্যবহারকারীদের মনোযোগ হবে।

0
যোগ
যদি আপনি সময়ের প্রেক্ষিতে পড়েন, তবে আপনি হয়তো লক্ষ্য করেছেন যে আমি স্পষ্টভাবে একটির উল্লেখ করেছি।
যোগ লেখক Ryan Fox, উৎস
কি, প্রার্থনা, একটি "সমালোচনামূলক" ব্যতিক্রম?
যোগ লেখক John Dibling, উৎস

এখানে একটি ব্যতিক্রম ব্যবহার করা উচিত নয়। এটি স্পষ্টতই একটি অসাধারণ কেস নয় যদি আপনি এই ফাংশন ব্যবহার করে সর্বত্র এটি আশা করা প্রয়োজন!

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

class SearchResult
{
  private:
    ResultType result_;
    bool succeeded_;
    bool succeessChecked_;

  public:
    SearchResult(Result& result, bool succeeded)
      : result_(result)
      , succeeded_(succeeded)
      , successChecked_(false)
    {
    }

    ~SearchResult()
    {
      ASSERT(successChecked_);
    }

    ResultType& Result() { return result_; }
    bool Succeeded() { successChecked_ = true; return succeeded_; }
}
0
যোগ
রিটার্ন মান পরিচালনার প্রয়োজনে জিসিসি কমপক্ষে একটি ফাংশন অ্যাট্রিবিউট আছে। এই অতিরিক্ত bool তুলনায় কম নোংরা।
যোগ লেখক Zan Lynx, উৎস
@ জোহান ডাইব্লিং আমাকে এমন কাউকে দেখান, যিনি গুরুতর কথা বলেন না।
যোগ লেখক James Kanze, উৎস
এই ক্লাসটি একটি কপি কন্সট্রাকটর এবং একটি অ্যাসাইনমেন্ট অপারেটর হারিয়েছে। অনুলিপি কন্সট্রাকটরটি খুবই গুরুত্বপূর্ণ, যেহেতু মানগুলি অনুলিপি দ্বারা ফেরত দেওয়া হয় (যা লুকাতে পারে)। C ++ 11 তে, আপনি সম্ভবত একটি কপি কন্সট্রাকটরের পরিবর্তে একটি সরানো কন্সট্রাকটর চান, যেহেতু আপনি কপি করা বস্তুতে সফল চেক করা রিসেট করতে চান।
যোগ লেখক James Kanze, উৎস
আমাকে এমন একটি উদাহরণ দেখান, যে কোনও কোক বা হ্যাক না বলে ব্যতিক্রমধর্মী পরিস্থিতির জন্য শুধুমাত্র ব্যতিক্রম।
যোগ লেখক John Dibling, উৎস
সেটি +1 আপনি যদি কিছু ফলাফল আশা করেন, এটি একটি ব্যতিক্রম আকারে ফেরৎ করা উচিত নয়।
যোগ লেখক macbirdie, উৎস
@ জোহান ডাইব্লিং আমি সাগা জাভা ডেভেলপারদের কাছ থেকে এই অনেক শুনেছি, কিন্তু আমি এখনো কোনও বই, রেফারেন্স বা উল্লেখযোগ্য ডেভেলপারদের কাছ থেকে এই সঠিক শব্দগুলি শুনতে / দেখতে পাইনি যদি তাই হয়, তবে পাইথন স্রষ্টা (ম) মেমো পায়নি :)
যোগ লেখক Jason Mock, উৎস

একটি ফাংশন এর স্বাক্ষরে ডায়নামিক ব্যতিক্রম স্পেসিফিকেশান যোগ করার একটি প্রচেষ্টা ছিল, কিন্তু যেহেতু ভাষা তাদের নির্ভুলতা জোরপূর্বক করতে পারেনি, পরে তারা হ্রাস পায়।

C ++ 11 এবং ফরোয়ার্ডে, আমরা এখন কোনও এক্সপ্রেস স্পেসিফিক নেই।
আবার, স্বাক্ষর নিক্ষেপ চিহ্নিত করা হয়, তাহলে, এটি আহ্বায়ক দ্বারা পরিচালিত করা হয় যে requriement এখনও হয় না।


প্রসঙ্গের উপর নির্ভর করে, আপনি নিশ্চিত করতে পারেন যে ব্যতিক্রমী আচরণটি টাইপ সিস্টেমে কোডিং দ্বারা পরিচালিত হবে।

See: std::optional as part of the library fundamentals.

0
যোগ

কোন উপায় আছে তা নিশ্চিত করতে পারেন কি?   ফাঁস করা ব্যতিক্রমগুলি সবসময় ধরা হয়   কলিং দ্বারা চেষ্টা / ধরা ব্যবহার করে   ফাংশন আছে??

আমি এটা বরং মজার, যে জাভা ভিড় - নিজেকে সহ - চেক ব্যতিক্রমগুলি এড়াতে চেষ্টা করছে। তারা RuntimeExceptions

0
যোগ

Chris' probably has the best pure answer to the question:

যাইহোক, আমি প্রশ্নের মূল সম্পর্কে উদ্বিগ্ন আমি প্রশ্ন। ব্যবহারকারী যদি সর্বদা একটি চেষ্টা / ধরা ব্লক কল কল করা উচিত, তাহলে ব্যবহারকারী-পরিচিত ফাংশন সত্যিই প্রথম স্থানে ব্যতিক্রম নিক্ষেপ করা উচিত?

প্রশ্নে কোড-বেস সংক্রান্ত আরো প্রসঙ্গ ছাড়া এটি উত্তর দিতে একটি কঠিন প্রশ্ন। হিপ থেকে শুটিং, আমি মনে করি সেরা কাজ এখানে ফাংশন মোড়ানো যেমন প্রস্তাবিত (যদি না শুধুমাত্র, কোড সামগ্রিক ব্যতিক্রম শৈলী উপর নির্ভর করে) পাবলিক ইন্টারফেস চেষ্টা / ধরা জন্য ব্যবহারকারী যদি আপনি নিশ্চিত করতে চেষ্টা করছেন যে আপনার কোড, ইউনিট পরীক্ষা এবং কোড পর্যালোচনাতে কোনও অপ্রয়োজনীয় ব্যতিক্রমগুলি রয়েছে তবে সম্ভবত এটি সর্বোত্তম সমাধান।

0
যোগ