throw and throws es el concepto de manejo de excepciones donde la palabra clave throw lanza la excepción explícitamente desde un método o un bloque de código, mientras que la palabra clave throws se usa en la firma del método.
Hay muchas diferencias entre tirar y lanza palabras clave. A continuación se proporciona una lista de diferencias entre lanzamiento y lanzamiento:
Sr. no. | Base de las diferencias | tirar | lanza |
---|---|---|---|
1. | Definición | La palabra clave Java throw se utiliza para generar una excepción explícitamente en el código, dentro de la función o el bloque de código. | La palabra clave throws de Java se utiliza en la firma del método para declarar una excepción que la función podría generar durante la ejecución del código. |
2. | Tipo de excepción Al utilizar la palabra clave throw, solo podemos propagar la excepción no comprobada, es decir, la excepción marcada no se puede propagar utilizando únicamente throw. | Usando la palabra clave throws, podemos declarar excepciones marcadas y no marcadas. Sin embargo, la palabra clave throws solo se puede utilizar para propagar excepciones marcadas. | |
3. | Sintaxis | La palabra clave throw va seguida de una instancia de excepción que se lanzará. | La palabra clave throws va seguida de los nombres de clase de las excepciones que se lanzarán. |
4. | Declaración | throw se utiliza dentro del método. | throws se utiliza con la firma del método. |
5. | Implementación interna | Solo se nos permite lanzar una excepción a la vez, es decir, no podemos lanzar múltiples excepciones. | Podemos declarar múltiples excepciones usando la palabra clave throws que puede generar el método. Por ejemplo, main() arroja IOException, SQLException. |
Ejemplo de lanzamiento de 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)>
Producción:
Ejemplo de lanzamiento y lanzamiento de 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'); } } }
Producción:
dijstra
1)>