English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cada vez que le pasa un parámetro inapropiado al método o constructor, se lanza IllegalArgumentException. Esta es una excepción de tiempo de ejecución, por lo que no es necesario manejar esta excepción en tiempo de compilación.
valueOf()
Los métodos de la clase java.sql.Date aceptan un formato de escape JDBCyyyy- [m] m- [d] dCadena que representa la fecha y se convierte en el objeto java.sql.Date.
import java.sql.Date; import java.util.Scanner; public class IllegalArgumentExample { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Ingrese su fecha de nacimiento en el formato de escape JDBC (yyyy-mm-dd) "); String dateString = sc.next(); Date date = Date.valueOf(dateString); System.out.println("Fecha dada convertida a objeto int: "+date); } }
Resultado de salida
Ingrese su fecha de nacimiento en el formato de escape JDBC (yyyy-mm-dd) 1989-09-26 Fecha dada convertida en un objeto: 1989-09-26
Pero, si transmite la cadena de fecha en cualquier otro formato, este método lanzará IllegalArgumentException.
import java.sql.Date; import java.util.Scanner; public class IllegalArgumentExample { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Ingrese su fecha de nacimiento en el formato de escape JDBC (yyyy-mm-dd) "); String dateString = sc.next(); Date date = Date.valueOf(dateString); System.out.println("Fecha dada convertida a objeto int: "+date); } }
Ingrese su fecha de nacimiento en el formato de escape JDBC (yyyy-mm-dd) 26-07-1989 Exception en hilo "main" java.lang.IllegalArgumentException at java.sql.Date.valueOf(Unknown Source) at july_ipoindi.NextElementExample.main(NextElementExample.java:11) En el siguiente ejemplo de Java, el constructor de Date (en realidad obsoleto) acepta
setPriority()
Los métodos de la clase Thread aceptan un valor entero que representa la prioridad del hilo y lo establecen para el hilo actual. Sin embargo, el valor transmitido a este método debe ser menor que la prioridad máxima del hilo, de lo contrario, este método lanzaráIllegalArgumentException.
public class IllegalArgumentExample { public static void main(String args[]) { Thread thread = new Thread(); System.out.println(thread.MAX_PRIORITY); thread.setPriority(12); } }
10Exception en hilo "main" java.lang.IllegalArgumentException at java.lang.Thread.setPriority(Unknown Source) at july_ipoindi.NextElementExample.main(NextElementExample.java:6)
Al utilizar métodos que generan IllegalArgumentException, ya que conoce sus parámetros válidos, puede usar if anticipadamente-límite de condición/Verificar los parámetros y evitar la aparición de excepciones.
import java.util.Scanner; public class IllegalArgumentExample { public static void main(String args[]) { Thread thread = new Thread(); System.out.println("Introduzca el valor de prioridad de hilo: "); Scanner sc = new Scanner(System.in); int priority = sc.nextInt(); if(priority<=Thread.MAX_PRIORITY) { thread.setPriority(priority); } System.out.println("El valor de prioridad debe ser menor que: ");+Thread.MAX_PRIORITY); } } }
Resultado de salida
Introduzca el valor de prioridad de hilo: 15 El valor de prioridad debe ser menor que: 10