কেন অসমাপ্ত ব্যতিক্রমের পরে সাফল্যের সাথে জাভা প্রস্থান করবে?


24

যে কোনও সময় পার্ল, পাইথন, সি ++ বা টিসিএল প্রোগ্রামটি অযথিত ব্যতিক্রম নিয়ে থামে, সেই ভাষা রানটাইমগুলি প্রক্রিয়াটির জন্য একটি শূন্য-বহির্গমন কোডটি নিবন্ধ করার জন্য যত্ন নেয়। এমনকি গ্রহন-ভিত্তিক প্রোগ্রামগুলি প্রারম্ভকালে ব্যর্থ হলে 1 ফেরত দেয়। প্রোগ্রাম দ্বারা চালিত প্রোগ্রামগুলি java.exeযাইহোক, আনন্দের সাথে যত তাড়াতাড়ি তারা শেষ হয় তা শূন্য ফিরিয়ে দেয়, যদি না প্রোগ্রামটি System.exit()একটি প্রস্থান মূল্য দিয়ে কল করে । এমনকি AssertionFailedErrorবা UnsatisfiedLinkErrorসফল প্রস্থান হিসাবে কলিং প্রোগ্রামে ফিরে রিপোর্ট করা হয়।

অবশ্যই সমস্ত সিস্টেমে প্রোগ্রামের রিটার্ন কোড নেই, তবে ইউনিক্স এবং উইন্ডোজ java.lang.Process.exitValue()শিশু প্রসেসের জন্য ওয়ারেন্ট দেওয়ার পক্ষে যথেষ্ট গুরুত্বপূর্ণ ছিল ; তারা কি পিতামাতার প্রক্রিয়াগুলির জন্য সম্মানিত সম্মেলনগুলিরও ওয়ারেন্ট দেয় না?

এটি কি ভাষা নকশার ত্রুটি বা কেবল বাস্তবায়নে? এটি একটি ভাল ধারণা আছে যে কোন যুক্তি আছে?


যদি স্ট্যাকওভারফ্লোতে এটি আরও উপযুক্ত না হয় তবে অবাক হোন ... তবে একটি মতামত।
গ্যাবলিন

@ গাবলিন এমএমএম, সত্যিই আমি এই প্রশ্নটি লিখতে শুরু করেছিলাম তখন আমার মন পরিবর্তন করে এটি এখানে পোস্ট করা হয়েছে।
জেমস

4
জাভা and এবং জাভা in- এর javaকমান্ড উভয়ই শূন্য-বহির্গমন প্রস্থান কোডের সাথে প্রতিক্রিয়া দেখায় যদি অকার্যকর ব্যতিক্রম উত্থাপিত হয়।
ডিমো 414

উত্তর:


28

জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশন স্পষ্টভাবে কি প্রস্থান মান আশা সংজ্ঞায়িত না ফেলেন, তাহলে এটি করা হয় অনির্দিষ্ট এবং আপনি এটি উপর নির্ভর করা উচিত নয়।

আপনার প্রধান পদ্ধতিতে আপনার থ্রোয়েবল ধরা দরকার এবং নিজেকে System.exit (1) কল করুন।


8
সুতরাং এটি কি অপরিবর্তিত রেখে যাওয়ার কোনও অভাব নয়?
জেমস

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