জাভাতে .NET এর NotImplementedException এর মতো কিছু আছে কি?


উত্তর:


516

কমন্স ল্যাং এর আছে। অথবা আপনি একটি নিক্ষেপ করতে পারে UnsupportedOperationException


26
এটি প্রদর্শিত হয় যে কমইস ল্যাং 3.0 থেকে নট-ইমপ্লিমেন্টেড এক্সসেপশন সরানো হয়েছে।
মাইকেল ইউনকিন

13
আমি মনে করি যেহেতু অসমর্থিত অপারেশন এক্সেকশনটি সংগ্রহের কাঠামোর অংশ, এটি কেবলমাত্র সংগ্রহের প্রসঙ্গে ব্যবহার করা উচিত। অন্যথায় একটি রানটাইম এক্সসেপশন ব্যবহার করা উচিত। docs.oracle.com/javase/7/docs/technotes/guides/collections/…
এল বুটজ

9
@ লিওনার্ডবাটজ এটি জাভা.এলং থেকে এসেছে: ডকস.ওরাকল
রবি

5
@ রাভিওয়াল্লাউ আমি এটি দেখেছি: ডকস.ওরকল / জাভাসে / //docs / api / java / lang/… এখানে দাঁড়িয়ে আছে যে এই শ্রেণিটি জাভা সংগ্রহ ফ্রেমওয়ার্কের একজন সদস্য।
এল বুটজ

3
: এটা কমন্স ল্যাঙ 3.2 মধ্যে readded হয়েছে commons.apache.org/proper/commons-lang/javadocs/api-3.2
qwertzguy

289

আমার মনে হয় java.lang.UnsupportedOperationExceptionআপনি যা খুঁজছেন


28
আমি বলি এটি বেশ আলাদা কিছু। এনআইই আরও বলেছে এটি এখনও কার্যকর হয়নি, যেখানে ইউওই আমাকে বলে যে এটি কখনও হবে না ...
ডাইকাম

5
@ ডাইকাম, তাহলে এটি কি নোটমিলিমেটেডইটএক্সেপশন হবে না?
যিশাই

106
@ ডাইকাম: new UnsupportedOperationException("Not implemented yet")- খুশি?
মাইকেল বর্গওয়ার্ট

3
আমি এটির চেয়ে খারাপ এটি বোঝাতে চাইনি, কেবল একটি ভিন্ন ব্যবহারের কেস ছিল।
ডায়কাম

6
নতুন অসমর্থিত অপারেশন এক্সসেপশন ("এখনও প্রয়োগ করা হয়নি") একটি দুর্দান্ত ধারণা! :) লং 3-এ কোনও কারণে আমার নটপ্লিমিটেড এক্সসেপশন নেই তাই এটি দুর্দান্ত সমাধান
ইউএফকে

55

আপনি নিজেই এটি করতে পেরেছিলেন (আমি যা করেছি তা thats) - ব্যতিক্রম হ্যান্ডলিং নিয়ে বিরক্ত না হওয়ার জন্য আপনি কেবল রানটাইম এক্সেক্সশনটি প্রসারিত করুন, আপনার শ্রেণিটি এরকম কিছু দেখতে পারে:

public class NotImplementedException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public NotImplementedException(){}
}

কোনও বার্তা নিতে আপনি এটি বাড়িয়ে দিতে পারেন - তবে আপনি যদি পদ্ধতিটি আমার মতো করে ব্যবহার করেন (এটি একটি অনুস্মারক হিসাবে এখনও প্রয়োগ করার মতো কিছু আছে) তবে সাধারণত অতিরিক্ত বার্তাগুলির প্রয়োজন হয় না।

আমি সাহস করে বলতে পারি, আমি কেবল এই পদ্ধতিটি ব্যবহার করি, যখন আমি একটি সিস্টেম বিকাশের প্রক্রিয়াধীন থাকি, তখনও কোন পদ্ধতিগুলি এখনও যথাযথভাবে প্রয়োগ করা হচ্ছে না সে সম্পর্কে ট্র্যাকটি হারাতে আমার পক্ষে সহজ করে তোলে :)


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

1
আমি রাজী. এটি UnsupportedOperationExceptionআমার মতে ব্যবহারের চেয়ে ভাল । এখন, কেবল জাভা যদি ব্যতিক্রমগুলির সাধারণ লাইব্রেরিতে এটি যুক্ত করে!
পিষ্ট করুন

12

উল্লিখিত হিসাবে, জেডিকে ঘনিষ্ঠ মিল নেই। যাইহোক, আমার দলের মাঝে মাঝে যেমন একটি ব্যতিক্রম হিসাবে ব্যবহার করা হয়। আমরা UnsupportedOperationExceptionঅন্যান্য উত্তরের পরামর্শ অনুসারে যেতে পারতাম , তবে আমরা আমাদের বেস লাইব্রেরিতে একটি কাস্টম ব্যতিক্রম ক্লাস পছন্দ করি যা নির্মাতাকে অবমূল্যায়ন করেছে:

public class NotYetImplementedException extends RuntimeException
{
    /**
     * @deprecated Deprecated to remind you to implement the corresponding code
     *             before releasing the software.
     */
    @Deprecated
    public NotYetImplementedException()
    {
    }

    /**
     * @deprecated Deprecated to remind you to implement the corresponding code
     *             before releasing the software.
     */
    @Deprecated
    public NotYetImplementedException(String message)
    {
        super(message);
    }
}

এই পদ্ধতির নিম্নলিখিত সুবিধা রয়েছে:

  1. পাঠকরা যখন দেখেন NotYetImplementedException, তারা জানেন যে একটি বাস্তবায়ন পরিকল্পনা করা হয়েছিল এবং হয় তা ভুলে গিয়েছিল বা এখনও প্রগতিতে রয়েছে, যেখানে UnsupportedOperationException( সংগ্রহের চুক্তির সাথে সামঞ্জস্য রেখে ) বলেছেন যে কোনও কিছু কখনই বাস্তবায়িত হবে না। এজন্য ক্লাসের নামে আমাদের "এখনও" শব্দটি রয়েছে। এছাড়াও, একটি আইডিই সহজেই কল সাইটগুলি তালিকাভুক্ত করতে পারে।
  2. প্রতিটি কল সাইটে অবমূল্যায়ন সতর্কতার সাথে, আপনার আইডিই এবং স্ট্যাটিক কোড বিশ্লেষণ সরঞ্জাম আপনাকে স্মরণ করিয়ে দিতে পারে যে আপনাকে এখনও কিছু বাস্তবায়ন করতে হবে। (অবমূল্যায়নের এই ব্যবহার কারও কারও কাছে ভুল মনে হতে পারে, তবে বাস্তবে অবমূল্যায়ন অপসারণের ঘোষণার মধ্যে সীমাবদ্ধ নয় ))
  3. কনস্ট্রাক্টরগুলি ক্লাস নয়, হ্রাস করা হয়েছে। এই পদ্ধতিতে, আপনি কেবল পদ্ধতির অভ্যন্তরে কেবল অবমূল্যায়নের সতর্কতা পান যা importলাইনে নেই (জেডিকে 9 এটি ঠিক করেছে )।

8

না সেখানে নেই এবং সম্ভবত এটি নেই, কারণ এটির জন্য খুব কম বৈধ ব্যবহার রয়েছে। আমি এটি ব্যবহার করার আগে দুইবার চিন্তা করব। এছাড়াও, নিজেকে তৈরি করা সত্যই সহজ।

পড়ুন দয়া করে এই আলোচনা কেন এটা এমনকি .NET এর সম্পর্কে।

আমার ধারণা UnsupportedOperationExceptionকাছাকাছি এসে গেছে, যদিও এটি বলে না যে অপারেশনটি কেবল কার্যকর করা হয়নি, তবে অসমর্থিতও। এটি বোঝাতে পারে যে কোনও বৈধ বাস্তবায়ন সম্ভব নয়। কেন অপারেশন অসমর্থিত হবে? এটা কি সেখানে থাকা উচিত? ইন্টারফেস বিভাজন বা লিসকভ বিকল্পের সমস্যা হতে পারে?

যদি এটির কাজ চলছে ToBeImplementedExceptionতবে আমি কংক্রিটের পদ্ধতি নির্ধারণ করতে নিজেকে ধরিনি এবং তারপরে এত দিন রেখে দিচ্ছি এটি এটি উত্পাদন করে তোলে এবং এরকম ব্যতিক্রমের প্রয়োজনও থাকবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.