ืืื ืืงืื ืืืื ืื ื ืืืืืื, ืืืืื ืื ื ืืืจืืขืื ืืืชื ืฆืคืืืื. ืจืขืืืืช ืืืื, ืคืขืืืืช ืื ืจืฆืืื ืืืืช ืฉื ืื ืฉืื, ืืืืืจืืืื... ืื ืืฉืื ืคืฉืื ืืืชืจ - ื ืืจื ื ืฉืจืคืช, ืืจืืืก ืื ืง ืืชืืื, ืื ืืืง ื ืฉืืจ. ืื ืื ื ืื ืืืืืื ืืืฉืืืช ืืืจืืขืื ืืืชื ืฆืคืืืื, ืืื ืื ืื ื ืืืืืื ืืคืืืช ืืืืืช ืืืื ืื ืืืงืืช ืืืืื. ืืืืืจ, ืขืืื ื ืืืืื ืื ืื ืื ืื ืืกืืืืื ืืืชืืืื ืืืชื. ืืขืืื ืืชืื ืืช, ืืืืงื ืืฉืคืช Java, ืืืจืืขืื ืฉืืื ืขืื ืืชืืื ื ืืคืขืื ืืจืืื ื ืงืจืืื ืืจืืืื, ืืืื ืื ืื ืื ืืื ืืขืช ืงืจืืกืืช ืชืืื ื ื ืงืจืืื ืืืคืื ืืจืื. ืืื, ืืืฉืจ ืืชืจืืฉ ืืืจืืข ืืืชื ืฆืคืื ืืชืืื ืืช, ืืืื ืืืืงื ืืืคืก, ืืื ืฆืจืืื "ืืืจืืง" ืืจืืื. ืืืคืื ืืืจืืืื ืืื ืืืื ืืฉืื ืืชืื ืืช Java ืืืกืืืข ืืืคืชืืื ืื ืื ืฉืืืืืช ืืืจืืืื ืฉืขืืืืื ืืืชืจืืฉ ืืืืื ืืืฆืืข ืชืืื ืืช. ืืืืืจ ืื ื ืชืืงื ืืืื ืืืืืฉืืื ืืืกืืกืืื ืฉื ืืืคืื ืืืจืืืื: ืืืืช ืืืคืชื Java throw ืืืืฆื ืืืฉืชืืฉ ืื ืืื ืืืฉืืื ืืจืื.
ืื ืื ืืจืื ื-Java?
ืืจืื ืืื ืืืจืืข ืืืชืจืืฉ ืืืืื ืืืฆืืข ืชืืื ืืช ืืืฉืืฉ ืืช ืืืจืืื ืืจืืืื ืฉื ืืืจืืืช ืืชืืื ืืช. ืืืฉืจ ืืชืจืืฉ ืืจืื, ืืคืขืืช ืืชืืื ืืช ื ืขืฆืจืช, ืืืืืขืช ืืฉืืืื ืืืฆืืช ืืืกืืฃ. ื-Java, ืืฉื ื ืฉื ื ืกืืืื ืฉื ืืจืืืื: ืืกืืื ืื ืืื ืืกืืื ืื. ืืจืืืื ืืกืืื ืื ื ืืืงืื ืืืื ืืืืืืจ, ืืืืืืจ ืืืืื ืฉืื ื ืชืคืกืื ืื ืืืืจืืื ืขื ืืื ืฉืืืช ืืงืจืืื. ืืฆื ืฉื ื, ืืจืืืื ืื ืืกืืื ืื ืืื ื ื ืืืงืื ืืืื ืืืืืืจ, ืื ืืชื ืืชืคืืก ืืืชื ืื ืืืฉืืืจ ืืืชื ืื ื ืชืคืกืื. ืื ื ืืืืื ืืงืื ืฉืื ืขืฉืืื ืืืชืจืืฉ ืฉืืืื, ืื ืืืืืจ ืืืื ืขืืื.public class Factorial {
public static long getFactorial(final int number) {
long fact = 1;
for (int i = 1; i <= number; i++) {
fact = fact * i;
}
return fact;
}
public static void main(String[] args) {
System.out.println(getFactorial(-5));
System.out.println(getFactorial(21));
}
}
ืืืื ืืคืื ืฉื ืืชืืื ืืช:
1 -4249290049419214848
ืืชืืื ืืช ืืฆืื ืืจืืื, ืื ืื ืืื ืชืืฆืื ืฉืืืื. ืืืงืจื ืืจืืฉืื, ืื ืืจืืืื ื ืืคืื ืงืฆืื ืืื ืฉืืืื, ืืืคืงืืืจื ืื ืขืืื ืขืืืจ ืืกืคืจืื ืฉืืืืืื. ืืืงืจื ืืฉื ื, ืืชืืฆืื ืืืืชื ืฉืืืื, ืืืืืื ืฉืืืกืคืจ ืืืื ืืืื ืืกืคืืจ ืืช ืืคืงืืืจืืืื ืฉืื ืืืืื ืืกืื ืืืจืื. ืื ื ืขืื ืืืืื. ื ืืชืื ืชืืื ืืช ืฉืื ื ืืืง ืืกืคืจ ืืื ืืืกืคืจ.
public class DivisionExample {
public static void main(String[] args) {
int a = 10;
int b = 0;
int result = divide(a, b);
System.out.println(result);
}
public static int divide(int a, int b) {
return a / b;
}
}
ืืืืืื ืื, ืชืืฆื ืืจืืชืืืืช ืืจืืื ืืืืืื ืฉืืืฉืชื ื b ืืื ืืคืก. ืขื ืืืช, ืฉืืืื ืื ืืื ื ืืืืคืืช, ืื ืฉืืชืืื ืืช ืืืฆืืช ืขื ืกืืืืก ืฉืืื.
ืืื ืืืจืืง ืืจืื ืื'ืืืื
ื-Java, ืืจืืืื ืื ืื ืืืืืืงืืื, ืื ืืจืื ื ืืจืง ืืืืืง ืืื ืืืืืืงื ืืจืื ืืืฉ ืฉื ืืฆืจ. ืืจืื ื ืืจืง ืืชืืื ืืช ืืืืฆืขืืช ืืฆืืจืช throw. ืืืจื ืืื, ืฉืชื ืืคืขืืืืช ืืืื (ืืฆืืจืช ืืืืืืงื ืืืฉืืืช ืืจืื) ืืฉืืืืืช ืืืืช:throw new Exception("errorโฆ");
ืืืืช ืืืคืชื throw ื-Java ืืฉืืฉืช ืืื ืืืจืืง ืืจืื ืืฉืืื ืื ืืืืง ืงืื ืืืฉืจ ืืชืจืืฉืช ืฉืืืื ืื ืืฆื ืืจืื ืฉืืชืืื ืืช ืื ืืืืื ืืืชืืืื ืขื ืืืื ืืจืืฆื . ืืจืืืช ืืชืืื ืืช ืื ืืชืืช ืืืืฉ ื-catch ืืงืจืื ืืืืชืจ. ืืืืง ืื ืืืื ืื ืื ืืช ืืืจืืื.
ืืืืื ืืฉืืืืฉ ืืืืืช ืืืคืชื 'ืืจืืง'
ืืื ืืืืืืฉ ืืช ืืคืื ืงืฆืืื ืืืืช ืฉื ืืืืช ืืืคืชื throw ื-Java, ื ืืงื ืืืืื. ืืื ื ืืชืื ืฉืืื ืืืืฉืื ืืคืงืืืจืืืื ืฉื ืืกืคืจ. ืื ืืืกืคืจ ืฉืืืื, ืื ื ืืชื ืืืฉื ืืืชื, ืืืื ืืฉ ืืืจืืง ืืจืื. ืืืืคื ืืืื, ืื ืืืกืคืจ ืืืื ืืื, ืืชืืฆืื ืืคืงืืืจืืช ืชืืจืื ืืืืืื ืืืจืื ืฉื ืกืื ืืจืื, ืืืืฆืืช ืืืคื ื ืืกืคืช. ืืื ืืฉ ืื ื ืืืฉืื ืฉื ืืฉืืื:public Class Factorial {
public static long getFactorial(final int number) {
if ((number >= 0) && (number < 21)) {
long fact = 1;
for (int i = 1; i <= number; i++) {
fact = fact * i;
}
return fact;
} else {
//throw new exception here
throw new IllegalArgumentException("THe argument isn't legal");
}
}
public static void main(String[] args) {
System.out.println(getFactorial(-5));
System.out.println(getFactorial(21));
}
}
ืืืืืื ืื, ืื ืืขืจื ืฉื ืืกืคืจ ืืื ืฉืืืื, ืืืืช ืืืคืชื throw ืืฉืืฉืช ืืื ืืืจืืง ืืืคืข ืฉื ืืืืืงื IllegalArgumentException . ืื ืชืคืขืื ืืช ืืชืืื ืืช, ืืืืืขื "ืืืจืืืื ื ืืื ื ืืืงื" ืชืืฆื ืืืกืืฃ. ืืคืขืืช ืืชืืื ืืช ืชืืขืฆืจ.
ืืื ืขืื ืฉืืืืืช: ืชืืคืกืื ืืืืื ืืจืืื
ืืขืช ื ืืืืจ ืืช ืืืืืื ืืฉื ืืื, ืขื ืืืืงื ืืืคืก, ืื ืืฆืข ืืืชื ืขื ืืืคืื ืืจืื.public class DivisionExample {
public static void main(String[] args) {
int a = 10;
int b = 0;
try {
int result = divide(a, b);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("Error: division by zero");
}
}
public static int divide(int a, int b) {
return a / b;
}
}
ืืืืืื ืื, ืืืกืคื ื ืืื ื try-catch ืืื ืืืคื ืืืจืื ืืืืืงื ืืืคืก. ืืงืฆืจื, try-catch-finally ืืื ืืื ื ืฉืคืช ืชืื ืืช Java ืืืืคืฉืจ ืื ืืืคื ืืืจืืืื ืืืืคืขืื ืงืื ืืื ืงืฉืจ ืื ืืชืจืืฉ ืืจืื ืื ืื. try-catch-ืืกืืคื ืฉื ืืืจ ืืืจืื ืืฉืืืฉื ืืืืงืื:
- ืืกืืืช ืื ืืกืืื . ืงืื ืฉืขืืื ืืืืืช ืืกืืื ืืืคืขื ืืื. ืื ืงืื ืฉืืืื ืืืจืืง ืืจืื. ืื ืืชืจืืฉ ืืจืื ืืชืื ืืืืง try , ืืืฆืืข ืืงืื ืืืืชื ืืืืง ืืืคืกืง, ืืืฉืืืื ืืืขืืจืช ืืืืืง ื-catch.
- ืืืืง ืืืืืื . ืืื ืืืืคื ืืืจืื ืฉื ืืจืง. ืืืืืง ื- catch , ืืชื ืืืื ืืฆืืื ืืืื ืืจืื ืืชืคืืก ืืืืื ืืืืืื ืืืฆืข ืืืฉืจ ืืื ื ืชืคืก. ืืืกืืื ืืืกืืฃ . ืื ืืืืฆืข ืืื ืงืฉืจ ืื ืืืจืข ืืจืื ืื ืื. ืืืืืง ืืกืืคื ืืฉืืฉ, ืืืฉื, ืืฉืืจืืจ ืืฉืืืื (ืืืื ืกืืืจืช ืงืืืฅ ืื ืฉืงืข) ืฉืืืงืฆื ืืืืืง ื ืืกืืื. ืืชื ืืืื ืืืฉืืื ืืช ืืืืืง ืืื.
ืืืจืง ืืืืช ืืคืชื
ืืืืช ืืืคืชื ืืจืืงื ืืฉืืฉืช ืืืชืืืช ืืฉืืื. ืื ืื, ืื ืืืืจ ืฉื ืืจืง ืืจืื ืืฉืืื. ืื ืืืื ืืืคืืฅ ืืจืืืื ืืืขืื ืืืืกื ืืช ืืืืฆืืืข ืขื ืื ืฉืืื ืฆืืจื ืืืคื ืืืจืืืื ืืฉืืื ืื ืืืืืช. ื-Java, ื ืืชื ืืืฉืชืืฉ ื-"throws" ืื ืืื ืืืชืืืืก ืืืจืืืื ืืืชืืืื ืืืฉืืช ืืืืืืจืื ืืชืืื ืืช. ืืืืืื, ืฉืืื ืขืฉืืื ืืืฆืข ืืืืงื ืฉื ืฉื ื ืืกืคืจืื, ืื ืืืจืืง ืืจืืื ืฉื IllegalArgument ืื ืืืจืืืื ื ืืฉื ื ืืื ืืคืก:public static double divide(double a, double b) throws IllegalArgumentException {
if (b == 0) {
throw new IllegalArgumentException("Division by zero is not allowed");
}
return a / b;
}
ืฉืืื ืื ืืฉืชืืฉืช ืืืืืช ืืืคืชื throws ืืื ืืฆืืื ืฉื ืืชื ืืืจืืง IllegalArgumentException ืื ืืืจืืืื ื ืืฉื ื ืืื null. ืื ืืจืืื ืืื ืืชืจืืฉืช ืืืื ืืืฆืืข ืืฉืืื, ืืื ืชืืขืืจ ืืฉืืืช ืืงืจืืื ืืขืืืื. ืืืืื ืืงืจืืืช ืฉืืื:
public static void main(String[] args) {
double result = 0;
try {
result = divide(10, 0);
} catch (IllegalArgumentException e) {
System.out.println("Error: " + e.getMessage());
}
System.out.println("Result: " + result);
}
ืืืืืื ืื, ืืชืืื divide() ื ืงืจืืช ืขื ืืจืืืื ืืื 10 ื-0, ืืฉืจ ืืืจืืง ืื-legalArgumentException ืืืื ืฉืืืืงื ืืืคืก ืืื ืืืชื ืืคืฉืจืืช. ืืืจืื ืืืชืคืก ืขื ืืื ืืืืง try-catch , ืืืืืขืช ืฉืืืื ืชืืฆื. ืืชืืื ืืช ืชืืื ืืขืจื ืฉื ืืคืก ืืืืจ ืืืืจืื ืืกืืื ืืช ืืืฆืืข ืฉืืืช divide() .
GO TO FULL VERSION