আমি জাভাতে নিম্নলিখিতগুলির মধ্যে পার্থক্য জানতে চাই
System.exit(0);
System.exit(-1);
System.exit(1);
কখন আমাকে উপরের কোডটি যথাযথভাবে ব্যবহার করতে হবে?
আমি জাভাতে নিম্নলিখিতগুলির মধ্যে পার্থক্য জানতে চাই
System.exit(0);
System.exit(-1);
System.exit(1);
কখন আমাকে উপরের কোডটি যথাযথভাবে ব্যবহার করতে হবে?
উত্তর:
প্রোগ্রামটির সম্পাদন ভাল বা খারাপ হলে প্রস্থানের প্যারামিটারটি যোগ্য হওয়া উচিত। এটি পুরানো প্রোগ্রামিং ভাষাগুলি থেকে এক ধরণের বংশগতি যেখানে এটি কিছুটা ভুল হয়েছে এবং কোনটি ভুল হয়েছে তা জেনে রাখা কার্যকর।
প্রস্থান কোড হয়
0
মৃত্যুদণ্ড কার্যকর হলে;1
, -1
, whatever != 0
যখন কিছু ত্রুটি ঘটেছে, আপনি বিভিন্ন মান ত্রুটি বিভিন্ন ধরনের জন্য ব্যবহার করতে পারেন।যদি আমি সঠিক প্রস্থান কোডগুলি কেবলমাত্র ইতিবাচক সংখ্যা হিসাবে ব্যবহৃত হত (আমি ইউনিক্সের অর্থ) এবং পরিসর অনুসারে:
1-127
ব্যবহারকারী সংজ্ঞায়িত কোড (তাই কল করে উত্পন্ন exit(n)
)128-255
SIGSEGV বা SIGTERM এর মতো বিভিন্ন ইউনিক্স সিগন্যালের কারণে সমাপ্তি দ্বারা উত্পন্ন কোডগুলিতবে জাভাতে কোডিংয়ের সময় আপনার যত্ন নেওয়া উচিত বলে আমি মনে করি না, এটি কেবলমাত্র সামান্য তথ্য। আপনি যদি আপনার প্রোগ্রামগুলিকে মানক সরঞ্জামের সাথে ইন্টারঅ্যাক্ট করার পরিকল্পনা করেন তবে এটি কার্যকর।
java MyApp && echo success
"সাফল্য" প্রিন্ট করবে যদি মাই অ্যাপে 0 এর একটি প্রস্থান কোড থাকে, অর্থাত্ যদি এটি কল করে exit(0)
বা কোনও ত্রুটি ছাড়াই মূল পদ্ধতির শেষে পৌঁছায়।
Zero
=> সব ঠিক আছে
Positive
=> আমার প্রত্যাশিত কিছুটি সম্ভাব্যভাবে ভুল হতে পারে ভুল হয়ে গেছে (খারাপ কমান্ড-লাইন, ফাইল খুঁজে পাচ্ছে না, সার্ভারের সাথে সংযোগ করতে পারেনি)
Negative
=> আমি প্রত্যাশা করি না এমন কিছু ভুল হয়ে গেছে (সিস্টেম ত্রুটি - প্রত্যাশিত ব্যতিক্রম - বাহ্যিকভাবে বাধ্যতামূলক সমাপ্তি উদাহরণস্বরূপ kill -9
)
(আপনি যদি 8-বিট স্বাক্ষরিত বাইনারি বা দ্বিগুণ পরিপূরক হিসাবে বিবেচনা করেন তবে 128 এর চেয়ে বেশি মানগুলি আসলে নেতিবাচক)
এখানে ভাল মানের প্রস্থান-কোডের একটি ভার রয়েছে
kill -15
) প্রায়ই প্রস্থান কোড ফলে 128+signal
কিন্তু (9 থেকে সরাইয়া) পরিচালিত করা যেতে পারে এবং একটি ভিন্ন প্রস্থান কোড ফেরান -
মধ্যে kill -15
চিহ্ন একটি সংকেত এবং একটি PID যেমন নম্বর, এটা সংকেত নেতিবাচক করতে না।
System.exit(-1)
এবং তারপরে আপনার শেলের মধ্যে echo $?
আপনি '255' পান। এ কারণেই আমি বলেছিলাম negativeণাত্মক সংখ্যাগুলি সিস্টেম ত্রুটি, কিল প্যারামিটারে '-' এর কারণে নয়। আপনি কি গুরুত্ব সহকারে ভেবে দেখেছেন? তবে বাশ এই কোডগুলি তৈরি করে এমন পদ্ধতিটি ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ।
System.exit(system call)
শাটডাউন ক্রমটি শুরু করে বর্তমানে চলমান জাভা ভার্চুয়াল মেশিনটি সমাপ্ত করে। যুক্তি স্থিতি কোড হিসাবে কাজ করে ।
সম্মেলনে, একটি ননজারো স্থিতি কোড অস্বাভাবিক সমাপ্তি নির্দেশ করে।
System.exit(0) or EXIT_SUCCESS; ---> Success
System.exit(1) or EXIT_FAILURE; ---> Exception
System.exit(-1) or EXIT_ERROR; ---> Error
জাভা আরও পড়ুন
ইউনিক্স এবং লিনাক্স সিস্টেমগুলিতে, 0
সফল মৃত্যুদণ্ড কার্যকর করার জন্য এবং তার 1
চেয়ে বেশি ব্যর্থ মৃত্যুদন্ড কার্যকর করার জন্য।
EXIT_*
জাভাতে নেই।
একটি শূন্য-বহির্গমন স্থিতি কোড, সাধারণত অস্বাভাবিক সমাপ্তি নির্দেশ করে। যদি n != 0
, বিভিন্ন এন এর একটি অর্থ প্রয়োগ করার জন্য এটি প্রোগ্রামারটির উপর নির্ভর করে।
Https://docs.oracle.com/javase/7/docs/api/java/lang/System.html থেকে ।
exit(0)
সাধারণত সফল সমাপ্তি নির্দেশ করতে ব্যবহৃত হয়। exit(1)
বা exit(-1)
বা অন্য কোনও শূন্য-মান সাধারণভাবে ব্যর্থ সমাপ্তির ইঙ্গিত দেয়।
উত্তর এখানে।
System.exit(0);// normal termination - Successful - zero
System.exit(-1);//Exit with some Error
System.exit(1);//one or any positive integer // exit with some Information message
একটি ভাল গ্যাচা হ'ল যে কোনও ত্রুটি কোড> 255 ত্রুটি কোড% 256 তে রূপান্তরিত হবে One তারা যদি কাস্টম ত্রুটি কোড> 255 ব্যবহার করে এবং অ্যাপ্লিকেশন যুক্তিতে সঠিক ত্রুটি কোডের আশা করে তবে এ সম্পর্কে বিশেষভাবে সতর্ক হওয়া উচিত। http://www.tldp.org/LDP/abs/html/exitcodes.html
system.exit () এ দেওয়া সংখ্যার পার্থক্য অন্যান্য উত্তরে ব্যাখ্যা করা হয়েছে। কিন্তু বাস্তব বিভাজনটি হ'ল System.exit () একটি কোড যা আমন্ত্রণমূলক প্রক্রিয়াতে ফিরে আসে। যদি অপারেটিং সিস্টেমের মাধ্যমে প্রোগ্রামটি চালু করা হয় তবে রিটার্ন কোডটি ওএসকে বলবে যদি system.exit () সবকিছু ঠিকঠাকের চেয়ে 0 ফেরত দেয় তবে কিছু ভুল না হলে পিতামাতার প্রসেসে এর জন্য কিছু হ্যান্ডলার থাকতে পারে
অন্যরা যেমন 0
সাফল্যের অর্থ উত্তর দেয় , অন্যথায়।
আপনি যদি ব্যাট ফাইল (উইন্ডো) ব্যবহার করেন System.exit(x)
তবে প্রভাব ফেলবে।
কোড জাভা (মায়াপ):
if (error < 2){
help();
System.exit(-1);
}
else{
doSomthing();
System.exit(0);
}
}
ব্যাট ফাইল:
java -jar myapp.jar
if %errorlevel% neq 0 exit /b %errorlevel%
rem -- next command if myapp is success --
System.exit (0) কনভেনশন অনুসারে, একটি nonzero স্থিতি কোড অস্বাভাবিক সমাপ্তি নির্দেশ করে।
কে System.exit (1) - এর অর্থ কিছু ত্রুটির কারণে সমাপ্তি ব্যর্থ
class calc{
public static void main(String args[])
{
int a, b, c;
char ch;
do{
Scanner s=new Scanner(System.in);
System.out.print("1. Addition\n");
System.out.print("2. Substraction\n");
System.out.print("3. Multiplication\n");
System.out.print("4. Division\n");
System.out.print("5. Exit\n\n");
System.out.print("Enter your choice : ");
ch=s.next().charAt(0);
switch (ch)
{
case '1' :
Addition chose1=new Addition();
chose1.add();
break;
case '2' :
Substraction chose2=new Substraction();
chose2.sub();
break;
case '3' :
Multiplication chose3= new Multiplication();
chose3.multi();
break;
case '4' :
Division chose4=new Division();
chose4.divi();
break;
case '5' :
System.exit(0);
break;
default :
System.out.print("wrong choice!!!");
break;
}
System.out.print("\n--------------------------\n");
}while(ch !=5);
}
}
উপরের কোডে যখন এর System.exit (0); এবং যখন আমি কেস 5 টিপবো তখন এটি সঠিকভাবে সরে যায় তবে আমি যখন System.exit (1) ব্যবহার করি; এবং কেস 5 টিপুন এটি ত্রুটি সহকারে বেরিয়ে আসে এবং আবার যখন আমি 15 কেস দিয়ে চেষ্টা করি তবে এটি জানতে পেরেছিলাম যে, যখনই আমরা কোনও যুক্তির ভিতরে যুক্ত করি তবে এটি নির্দিষ্ট করে, এটি সেই অবস্থান থেকে চরিত্রটি গ্রহণ করে যদি আমি রাখি তবে (4) এর অর্থ এই স্ট্রিং থেকে 5 তম অক্ষর গ্রহণ করা হয় যদি এর (3) থাকে তবে এর অর্থ সেই ইনপুটড স্ট্রিং থেকে চতুর্থ অক্ষর নেওয়া