Sina.iRoid
شنبه 08 آذر 1393, 01:17 صبح
سلام دوستان. یه سوال داشتم ممنون میشم اگر راهنماییم کنید.
دوستان من شروع کردم به مطالعه مبحث کنترل خطا. برنامه ای هم که نوشتم به این صورت هست که اگر عددی بر صفر تقسیم شد، یه پیغامی و به کاربر نمایش بده. من برای این برنامه دو راه مختلف و امتحان کردم.
راه اول:
public class TestMainClass {
public static void main(String[] args) {
try {
System.out.println(10 / 0);
} catch (ArithmeticException e) {
System.out.println("Exception...");
}
}
}
راه دوم:
کلاس DivideByZeroException:
@SuppressWarnings("serial")
public class DivideByZeroException extends Exception{
}
کلاس Mathematics:
public class Mathematics {
//divide method
public double divide(int a, int b) throws DivideByZeroException{
if (b == 0) {
throw new DivideByZeroException();
} else {
return a / b;
}
}
}
و کلاس اصلی:
public class TestMainClass {
public static void main(String[] args) {
Mathematics mathOb = new Mathematics();
try {
System.out.print(mathOb.divide(10, 0));
} catch (DivideByZeroException e) {
System.out.println("Exception in dividing a number by zero is occurred.");
}
}
}
اما من اصلا متوجه فرق این دو راه نمیشم!؟ نمی دونم سوال و درست مطرح کردم یا نه. به هر حال ممنون میشم اگر راهنماییم کنید.
دوستان من شروع کردم به مطالعه مبحث کنترل خطا. برنامه ای هم که نوشتم به این صورت هست که اگر عددی بر صفر تقسیم شد، یه پیغامی و به کاربر نمایش بده. من برای این برنامه دو راه مختلف و امتحان کردم.
راه اول:
public class TestMainClass {
public static void main(String[] args) {
try {
System.out.println(10 / 0);
} catch (ArithmeticException e) {
System.out.println("Exception...");
}
}
}
راه دوم:
کلاس DivideByZeroException:
@SuppressWarnings("serial")
public class DivideByZeroException extends Exception{
}
کلاس Mathematics:
public class Mathematics {
//divide method
public double divide(int a, int b) throws DivideByZeroException{
if (b == 0) {
throw new DivideByZeroException();
} else {
return a / b;
}
}
}
و کلاس اصلی:
public class TestMainClass {
public static void main(String[] args) {
Mathematics mathOb = new Mathematics();
try {
System.out.print(mathOb.divide(10, 0));
} catch (DivideByZeroException e) {
System.out.println("Exception in dividing a number by zero is occurred.");
}
}
}
اما من اصلا متوجه فرق این دو راه نمیشم!؟ نمی دونم سوال و درست مطرح کردم یا نه. به هر حال ممنون میشم اگر راهنماییم کنید.