データ型がオーバーフローして、その例がそれを証明します。彼らがしないことは、オーバーフロー時に例外をスローすることです。
Javaでは例外が一般に宣言されなければならず、そうする際にはキャッチする必要があります。はい、これが成り立たないシナリオがいくつかあります(エラー、ランタイム例外など)が、例外の大部分についてはこのような規則が速く保持されます。
MathOverflowExceptionが必要な場合は、それをキャッチする必要があります。さもなければそれは目的を果たさないでしょう。それはあなたがそれは本当に厄介な取得する場所さて、これはこの
try {
int x = 5 + 7;
} catch (MathOverflowException e) {
// do something
}
のように見えたコードを記述する必要がありますを意味します。何が例外をスローしますか?それは "プラス"記号でなければなりません、そうですか?まあ、まあまあです。オブジェクトのメソッドは例外をスローするので、プラス記号は "オブジェクト"の "メソッド"でなければなりません。5.この特別な場合は、オブジェクトのメソッドを逆参照しないでください。それ以外の場合は、次のようになります。
try {
int x = 5.+ 7; // Note the dot-plus ".+"
} catch (MathOverflowException e) {
// do something
}
しかし、あなたはこれをやって開始した場合、あなたは操作のために括弧を必要としています。
try {
int x = 5.+(7);
} catch (MathOverflowException e) {
// do something
}
これを行うと、「等号」の割り当ても方法であることを意味します。
try {
int x.=(5.+(7));
} catch (MathOverflowException e) {
// do something
}
が、我々はそれをする必要がありますので、 "新しい" のxを作成しませんでした:
try {
(new int x()).=(5.+(7));
} catch (MathOverflowException e) {
// do something
}
または多分
try {
new int x(5).+(7);
} catch (MathOverflowException e) {
// do something
}
いずれかの方法で、それはより遠くに旅行ですシンプルな代数スタイルで、Javaはよく知られている代数/ C-ish/Fortran-ish構文を維持することに決めました。そうすることで、彼らは、オブジェクト指向の方法で数学構文をサポートする隠された "背後にある"ルールを作る必要があるか、または数学がオブジェクト指向であるという偽善を排除するだけでよいことをすぐに発見しました。彼らは後者を選んだ。
あなたの答えは何ですか? –
これはディスカッションフォーラムではありません([FAQ](http://stackoverflow.com/faq)参照)。決定的な答えがないこれらのような質問は本当にここに属しません。それはまったく悪い質問ではありませんが、客観的に答えることはできません。設計上の決定であり、オラクルのフォーラムでより良い答えを得ることができます。 –
@blob、これを行う言語はありますか?それについて考える。 – st0le