Aqui les dejo unos ejemplos de algunas excepciones (a mi parecer las mas comunes) que se pueden dar en java:
NumberFormatException
Esta
excepcion se produce cuando se trata de convertir un String a un numero. Las
conversiones son realizadas por las funciones Integer.parseInt e Integer.parseDouble. Supongamos que
llamamos la función Integer.parseInt (str), donde el valor de str es
"60", entonces convertiríamos ese String a un numero entero , que
seria 60. Sin embargo, si el valor de str es "Saurabh", la llamada de
la función no se compilará porque "Saurabh" no es una representación
de String legal de un valor int. En tal caso, se produce un NumberFormatException. Ejemplo:
import java.util.Scanner;
public class NumberFormatExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
int respuesta=0;
System.out.println(" Suma de numeros");
try{
System.out.print("Numero 1: ");
String num1=lea.next();
System.out.print("Numero 2: ");
String num2=lea.next();
respuesta=Integer.parseInt(num1)+Integer.parseInt(num2);
}catch(NumberFormatException e){
System.out.println("No es posible convertir el valor");
}
finally{
System.out.println(respuesta);
}
}
}
public class NumberFormatExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
int respuesta=0;
System.out.println(" Suma de numeros");
try{
System.out.print("Numero 1: ");
String num1=lea.next();
System.out.print("Numero 2: ");
String num2=lea.next();
respuesta=Integer.parseInt(num1)+Integer.parseInt(num2);
}catch(NumberFormatException e){
System.out.println("No es posible convertir el valor");
}
finally{
System.out.println(respuesta);
}
}
}
ArithmeticException
Se produce
cuando una condición aritmética excepcional, se ha producido. Por ejemplo, un
número entero dividido entre 0, genera una instancia de esta clase:
import java.util.Scanner;
public class AritmeticExceptionPrueba {
public static void main (String args[]){
Scanner lea= new Scanner (System.in);
double div=0;
System.out.println(" Division de numeros");
try{
System.out.print("Numero 1: ");
int n1=lea.nextInt();
System.out.print("Numero 2: ");
int n2=lea.nextInt();
div=n1/n2;
}catch(ArithmeticException e){
System.out.println("No es posible la division entre 0");
}finally{
System.out.println("Resultado de la division: "+div);
}
}
}
public class AritmeticExceptionPrueba {
public static void main (String args[]){
Scanner lea= new Scanner (System.in);
double div=0;
System.out.println(" Division de numeros");
try{
System.out.print("Numero 1: ");
int n1=lea.nextInt();
System.out.print("Numero 2: ");
int n2=lea.nextInt();
div=n1/n2;
}catch(ArithmeticException e){
System.out.println("No es posible la division entre 0");
}finally{
System.out.println("Resultado de la division: "+div);
}
}
}
InputMismatchException
Por ejemplo,
se produciría un error si intentáramos introducir caracteres en una variable
numérica:
import java.util.InputMismatchException;
import java.util.Scanner;
public class InputMismatchExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
int respuesta=0;
System.out.println(" Suma de numeros");
try{
System.out.print("Numero 1: ");
int num1=lea.nextInt();
System.out.print("Numero 2: ");
int num2=lea.nextInt();
respuesta=num1+num2;
}catch(InputMismatchException e){
System.out.println("Debe ingresar valores numericos enteros");
}
finally{
System.out.println("Resultado: "+respuesta);
}
}
}
import java.util.Scanner;
public class InputMismatchExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
int respuesta=0;
System.out.println(" Suma de numeros");
try{
System.out.print("Numero 1: ");
int num1=lea.nextInt();
System.out.print("Numero 2: ");
int num2=lea.nextInt();
respuesta=num1+num2;
}catch(InputMismatchException e){
System.out.println("Debe ingresar valores numericos enteros");
}
finally{
System.out.println("Resultado: "+respuesta);
}
}
}
ArrayIndexOutOfBounds
Esta excepción es lanzada para indicar que se accedió a un
arreglo con un índice que es negativo, mayor que o igual al tamaño de la
matriz.
import java.util.Scanner;
public class ArrayIndexOutOfBoundsExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
String arg[]={"Ana","Juan","Pamela","Carla"};
int p=0;
for(int c=0;c<arg.length;c++){
System.out.println(c+"."+arg[c]);
}
try{
System.out.print("Que nombre desea modificar: ");
p=lea.nextInt();
System.out.println("Nombre actual: "+arg[p]);
System.out.print("Nuevo nombre: ");
arg[p]=lea.next();
System.out.print("Nombre modificado, desea verificar la lista (s/n): ");
char op=lea.next().charAt(0);
if(op=='s' || op=='S'){
for(int c=0;c<arg.length;c++){
System.out.println(c+"."+arg[c]);
}
}
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Posicion invalida...");
}
}
}
public class ArrayIndexOutOfBoundsExceptionPrueba {
public static void main(String args[]){
Scanner lea= new Scanner (System.in);
String arg[]={"Ana","Juan","Pamela","Carla"};
int p=0;
for(int c=0;c<arg.length;c++){
System.out.println(c+"."+arg[c]);
}
try{
System.out.print("Que nombre desea modificar: ");
p=lea.nextInt();
System.out.println("Nombre actual: "+arg[p]);
System.out.print("Nuevo nombre: ");
arg[p]=lea.next();
System.out.print("Nombre modificado, desea verificar la lista (s/n): ");
char op=lea.next().charAt(0);
if(op=='s' || op=='S'){
for(int c=0;c<arg.length;c++){
System.out.println(c+"."+arg[c]);
}
}
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Posicion invalida...");
}
}
}
NullPointerException
Las
excepciones de tipo NullPointer son las
causas de excepción en tiempo de ejecución más comunes. Son errores de lógica
causados cuando un programa intenta acceder a métodos o atributos en una
referencia que esta nula.
Todos los
valores en Java, excepto las primitivas, son referencias a objetos y todos tienen un valor por defecto, el
valor null, que indica que el objeto no tiene asignado ningún valor. A un
objeto con valor null, no inicializado, que no referencia ningún objeto, no se
le puede aplicar ningún método, siendo el resultado el lanzamiento de una
excepción de tipo NullPointerException.
public class NullPointerExceptionPrueba {
private Casa casa;
public static void main(String[] args){
NullPointerExceptionPrueba vender=new NullPointerExceptionPrueba();
System.out.println("Venta de casa");
try{
System.out.println(vender.casa.getPrecio());
}catch(NullPointerException e){
System.out.println("Metodo no valido...");
}
}
}
class Casa{
private int precio;
public void setPrecio(int precio){
this.precio=precio;
}
public int getPrecio(){
return precio;
}
}
private Casa casa;
public static void main(String[] args){
NullPointerExceptionPrueba vender=new NullPointerExceptionPrueba();
System.out.println("Venta de casa");
try{
System.out.println(vender.casa.getPrecio());
}catch(NullPointerException e){
System.out.println("Metodo no valido...");
}
}
}
class Casa{
private int precio;
public void setPrecio(int precio){
this.precio=precio;
}
public int getPrecio(){
return precio;
}
}