//整数相加溢出publicstaticintaddExact(int x,int y){
int r = x + y;// HD 2-12 Overflow iff both arguments have the opposite sign of the resultif(((x ^ r)&(y ^ r))<0){
thrownewArithmeticException("integer overflow");//ArithmeticException使用指定的detail消息构造算术异常}return r;}//整数相减溢出publicstaticintsubtractExact(int x,int y){
int r = x - y;// HD 2-12 Overflow iff the arguments have different signs and// the sign of the result is different than the sign of xif(((x ^ y)&(x ^ r))<0){
thrownewArithmeticException("integer overflow");}return r;}//整数相乘溢出publicstaticintmultiplyExact(int x,int y){
long r =(long)x *(long)y;if((int)r != r){
thrownewArithmeticException("integer overflow");}return(int)r;}