데이터 형식이 오버플로되어 예가 증명합니다. 그들이하지 않는 것은 범람 할 때 예외를 throw하는 것입니다.
Java에서는 예외를 일반적으로 선언해야하며 그렇게 할 때 예외를 잡아야합니다. 네, 이것이 (오류, RuntimeExceptions 등) 개최하지 않는 몇 가지 시나리오가 있지만 이러한 규칙은 예외의 주요에 대한 빠른 개최.
MathOverflowException을 원하면 catch해야합니다. 그렇지 않으면 아무런 도움이되지 않습니다. 즉, 다음과 같은 코드를 작성해야합니다.
try {
int x = 5 + 7;
} catch (MathOverflowException e) {
// do something
}
이제이 코드는 실제로 불쾌 해집니다. 무엇이 예외를 던집니까? "플러스"표지가 맞지, 그렇지? 글쎄, 일종의. Object on Methods는 예외를 던지므로 더하기 기호는 "object"의 "method"여야합니다. 5.이 특별한 mathimatcal 경우를 제외하고는 객체의 메서드를 역 참조하지 않습니다. 그렇지 않으면 다음과 같이 표시됩니다.
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