সমস্ত জাভা কোড একটি থ্রেডের প্রসঙ্গে চলে । লিঙ্কযুক্ত জাভাডক ত্রুটি পরিচালনা ও প্রস্থান মাপদণ্ডকে ব্যাখ্যা করে তবে এখানে এর সংক্ষিপ্তসার এখানে দেওয়া হয়েছে:
- জেভিএম নিজেকে স্পিন করে এবং কার্যকর করার পরিবেশ প্রস্তুত করে।
- জেভিএম একটি থ্রেড তৈরি
main()
করে যা কমান্ড-লাইন প্যারামিটারগুলি প্রযোজ্য তা প্রয়োগ করে পদ্ধতিটি পরিচালনা করবে ।
- JVM একটি ডিফল্ট অচল ব্যতিক্রম হ্যান্ডলার সেট করে যা স্ট্যান্ডার্ড ত্রুটির ব্যতিক্রমটি মুদ্রণ করে এবং সমাপ্ত করে।
- জেভিএম থ্রেডটি কার্যকর করে।
অপ্রকাশিত ব্যতিক্রমের ক্ষেত্রে, প্রোগ্রামটি উপরের তৃতীয় আইটেমটির জন্য কার্যকরভাবে মারা যায়। এই আচরণটি জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশনে বিভাগ 11.3-এ আরও নির্দিষ্ট করা আছে
অতিরিক্ত তথ্য
অন্যরা স্থিতিশীল ব্লক এবং তারা কীভাবে পূর্বে সম্পাদন করে তা উল্লেখ করেছে main()
। তবে সঠিকভাবে বুঝতে এটির জন্য আরও কিছুটা ব্যাখ্যা প্রয়োজন।
শ্রেণি লোড করার সময়, শ্রেণি লোডারকে শ্রেণীর তাত্ক্ষণিক দৃষ্টান্ত অন্তর্ভুক্ত করতে ক্লাসটি ব্যবহারের আগে সমস্ত static final
রাজ্যের সূচনা করতে হবে এবং সমস্ত static
ব্লক চালাতে হবে (একপাশে: একটি জাভা শ্রেণি তৈরি করুন যেখানে একটি ক্লাস ধ্রুবক একটি স্ট্যাটিক ব্লকে তৈরি করার পরে শুরু করা হয়) ক্লাসের উদাহরণ, এবং কনস্ট্রাক্টর ধ্রুবক উল্লেখ করে। বুম!)। যাইহোক, কোনও কোড শ্রেণীর রেফারেন্স দেওয়ার আগে ক্লাস লোডার যুক্তিতে এই সমস্ত ঘটে থাকে । তদ্ব্যতীত, ক্লাসটি যে কোনও থ্রেডকে শ্রেণিভুক্ত করা হয় তাতে লোড করা হয়।
এর অর্থ কী, যদি শ্রেণিটি main()
অন্য শ্রেণীর রেফারেন্স দেয় (যেমন ক্লাস ধ্রুবক) তবে তার স্থির ব্লকগুলি অন্তর্ভুক্ত করার জন্য নির্বাহের আগে সেই শ্রেণিটি লোড করা আবশ্যকmain()
। অন্যথায়, স্থির ব্লকগুলি উপরের মত কার্যকর করা হয়। যদি শ্রেণিটি লোড করতে ব্যর্থ হয়, তবে এতে থাকা ক্লাসটি main()
লোড করতে ব্যর্থ হবে এবং প্রোগ্রামটি শেষ হবে।
আর একটি এফওয়াইআই: স্ট্যাটিক ব্লক নিক্ষেপ করতে পারে । Errors
যেমন হয় তেমনি নিক্ষেপ করা হয় Exceptions
নিষিদ্ধ (সংকলন-সময় ত্রুটি)। এক্সেপশনআইনিটায়ালাইজারেRuntimeExceptions
মুড়ে ফেলা হয় । এই uncaught ব্যতিক্রম হ্যান্ডলার, যদি না আপনি সাবধানে বর্গ রেফারেন্স (এবং লোড হচ্ছে) একটি মোড়ানো যা সাধারণত হয় থ্রেড বা অ্যাপ্লিকেশন (মূল থ্রেড) হত্যা করবে প্রতি পরিচালনা করা হয় - ।try
catch