হ্যাঁ, নির্মাতারা জাভাতে একটি ব্যতিক্রম নিক্ষেপ করার অনুমতি রয়েছে৷
একটি কনস্ট্রাক্টর একটি বিশেষ ধরনের পদ্ধতি যা অবজেক্ট শুরু করতে ব্যবহৃত হয় এবং এটি নতুন কীওয়ার্ড ব্যবহার করে একটি ক্লাসের একটি বস্তু তৈরি করতে ব্যবহৃত হয় , যেখানে একটি বস্তু I নামেও পরিচিত nstance একটি শ্রেণীর একটি ক্লাসের প্রতিটি বস্তুর নিজস্ব অবস্থা থাকবে (ইনস্ট্যান্স ভেরিয়েবল ) এবং এর ক্লাসের পদ্ধতিতে অ্যাক্সেস।
একটি কনস্ট্রাক্টর থেকে একটি ব্যতিক্রম নিক্ষেপ করুন
- একটি চেক করা ব্যতিক্রম একটি উদাহরণ তৈরি করার চেষ্টা করার সময় একটি বৈধ সমস্যা নির্দেশ করতে ব্যবহার করা যেতে পারে, যখন একটি অচেক করা ব্যতিক্রম সাধারণত ক্লায়েন্ট কোডে বা কনস্ট্রাক্টরের মধ্যেই একটি বাগ নির্দেশ করে।
- উভয় ক্ষেত্রেই, একটি বস্তুকে আসলে গদা স্থান এ বরাদ্দ করা হয় , কিন্তু এটির একটি রেফারেন্স ফেরত দেওয়া হয় না। অবজেক্টটি আংশিক সূচনা অবস্থায় থাকে যতক্ষণ না এটি আবর্জনা সংগ্রহ করা হয়। তাই আমরা এই সিদ্ধান্তে পৌঁছেছি যে কনস্ট্রাক্টরের কাছ থেকে বস্তুর একটি রেফারেন্স সংরক্ষণ করা হচ্ছে (এটি ব্যবহার করে রেফারেন্স) একটি ঝুঁকিপূর্ণ জিনিস, যেহেতু আমরা একটি অবৈধ অবস্থায় একটি বস্তুর অ্যাক্সেস দিতে পারি।
- একটি কন্সট্রাক্টরের ব্যতিক্রম সম্পর্কে উল্লেখ্য আরেকটি গুরুত্বপূর্ণ বিষয় হল প্রতিফলন এর সাথে সম্পর্কিত . যখন আমাদের খালি কনস্ট্রাক্টর ডাকতে হবে একটি ক্লাস অবজেক্ট ব্যবহার করে উদাহরণস্বরূপ পরীক্ষা , আমরা মাঝে মাঝে test.newInstance(). পদ্ধতি ব্যবহার করি
- নির্মাতাদের দ্বারা নিক্ষিপ্ত কোনো ব্যতিক্রম পরিবর্তন ছাড়াই প্রচার করা হয়। অন্য কথায়, newInstance() পদ্ধতি চেক করা ব্যতিক্রম নিক্ষেপ করতে পারে যে এটা ঘোষণাও করে না।
উদাহরণ
public class ConstructorExceptionTest { public ConstructorExceptionTest() throws InterruptedException { System.out.println("Preparing an Object"); Thread.sleep(1000); System.out.println("Object is ready"); } public static void main(String args[]) { try { ConstructorExceptionTest test = new ConstructorExceptionTest(); } catch (InterruptedException e) { System.out.println("Got interrupted..."); } } }
আউটপুট
Preparing an Object Object is ready