Изхвърлянето и хвърлянето е концепцията за обработка на изключения, при която ключовата дума throw хвърля изключението изрично от метод или блок от код, докато ключовата дума throws се използва в сигнатурата на метода.
Има много разлики между хвърлям и хвърля ключови думи. Списък с разликите между хвърляне и хвърляния е даден по-долу:
г-н не | Основа на различията | хвърлям | хвърля |
---|---|---|---|
1. | Определение | Ключовата дума Java throw се използва изрично хвърляне на изключение в кода, във функцията или блока от код. | Ключовата дума Java throws се използва в сигнатурата на метода, за да декларира изключение, което може да бъде хвърлено от функцията по време на изпълнението на кода. |
2. | Тип изключение Използвайки ключовата дума throw, можем да разпространяваме само непроверено изключение, т.е. провереното изключение не може да се разпространява само с помощта на throw. | Използвайки ключовата дума throws, можем да декларираме както проверени, така и непроверени изключения. Ключовата дума throws обаче може да се използва само за разпространение на проверени изключения. | |
3. | Синтаксис | Ключовата дума throw е последвана от екземпляр на Exception, който трябва да бъде хвърлен. | Ключовата дума throws е последвана от имена на класове на изключения, които трябва да бъдат хвърлени. |
4. | Декларация | throw се използва в рамките на метода. | throws се използва със сигнатурата на метода. |
5. | Вътрешно изпълнение | Имаме право да хвърляме само едно изключение наведнъж, т.е. не можем да хвърляме множество изключения. | Можем да декларираме множество изключения, като използваме ключова дума throws, която може да бъде хвърлена от метода. Например main() хвърля IOException, SQLException. |
Пример за хвърляне на Java
TestThrow.java
public class TestThrow { //defining a method public static void checkNum(int num) { if (num <1) { throw new arithmeticexception(' number is negative, cannot calculate square'); } else system.out.println('square of ' + num (num*num)); main method public static void main(string[] args) testthrow obj="new" testthrow(); obj.checknum(-3); system.out.println('rest the code..'); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/22/difference-between-throw.webp" alt="Difference between throw and throws in Java"> <h2>Java throws Example</h2> <p> <strong>TestThrows.java</strong> </p> <pre> public class TestThrows { //defining a method public static int divideNum(int m, int n) throws ArithmeticException { int div = m / n; return div; } //main method public static void main(String[] args) { TestThrows obj = new TestThrows(); try { System.out.println(obj.divideNum(45, 0)); } catch (ArithmeticException e){ System.out.println(' Number cannot be divided by 0'); } System.out.println('Rest of the code..'); } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/22/difference-between-throw-2.webp" alt="Difference between throw and throws in Java"> <h2>Java throw and throws Example</h2> <p> <strong>TestThrowAndThrows.java</strong> </p> <pre> public class TestThrowAndThrows { // defining a user-defined method // which throws ArithmeticException static void method() throws ArithmeticException { System.out.println('Inside the method()'); throw new ArithmeticException('throwing ArithmeticException'); } //main method public static void main(String args[]) { try { method(); } catch(ArithmeticException e) { System.out.println('caught in main() method'); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/22/difference-between-throw-3.webp" alt="Difference between throw and throws in Java"> <hr></1)>
Изход:
Java хвърля и хвърля Пример
TestThrowAndThrows.java
public class TestThrowAndThrows { // defining a user-defined method // which throws ArithmeticException static void method() throws ArithmeticException { System.out.println('Inside the method()'); throw new ArithmeticException('throwing ArithmeticException'); } //main method public static void main(String args[]) { try { method(); } catch(ArithmeticException e) { System.out.println('caught in main() method'); } } }
Изход:
1)>