C言語のmainの戻り値はintで、これはエラーコード返しています。
一方で、Javaのmainではvoidになっています。C言語から派生したJavaですが、これはJavaの思想なのでしょうか。そうした時、これはどういうスタンスによるものなのでしょうか。(堅牢なシステムではクラッシュしては困るので、そもそもエラーコードを返すような状況は起きるべきでないから?)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
>>javaのmainの戻り値の型はなぜvoidなのか
うちでもミドルウェアやアプリで山ほど
javaを使ったものが常時・随時に稼働しています。
いちいち戻り値見るような作りにするより、
具体的な問題が判ればそれで良いです。
※マジでほんとお願いします。
ミドルウェアやアプリのログと
jstatを突合しても結構大変ですよ。
投稿2020/09/24 13:18
編集2020/09/24 13:22総合スコア923
0
ベストアンサー
main 関数からの返却値が、エラーコードに反映されるようになったのは、
ANSI C89 からです。
main 関数からの返却値があっても、
エラーコードには反映されないのが、C言語のもともとの仕様です。
#include <stdio.h> main() { printf("hello world\n"); }
と、K&R 1st には書いてあります。
(#include <stdio.h> も不要ですが)
もともと、エラーコードは、java と同じように、
exit 関数の引数で指定するのがC言語のスタンスです。
main 関数からの返却値がエラーコードに反映されるのは、
C言語のスタンスというよりは、ANSI のスタンスです。
投稿2020/09/24 11:23
編集2020/09/24 11:33総合スコア478
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
(堅牢なシステムではクラッシュしては困るので、そもそもエラーコードを返すような状況は起きるべきでないから?)
そんなことはありません。JavaもSystem.exit(n)
等でエラーコードを返します。
逆にC言語でreturn 0
って必ず書かないといけないのが面倒じゃないですか?
プログラムは基本的に正常終了することを前提に作成されると考えると、不要な処理と言ってもいいかと。
投稿2020/09/24 10:48
総合スコア1400
0
Javaの実行に欠かせないmainメソッド、その仕組みからしっかり解説
ここに解説があります
投稿2020/09/24 06:45
総合スコア88042
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 07:04
2020/09/24 10:52
2020/09/24 11:16
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。