Java异常之异常的处理详解和代码举例

Java语言的异常

  1. 异常处理机制
  2. 异常处理类
  3. 异常的处理
  4. 抛出异常
  5. 自定义异常类

异常的处理
在 Java 中,通常用 try、catch、finally 捕捉并处理异常,用 throw、throws 用来抛 出异常。

1. 异常的产生 
	示例:本例中有两处代码在运行时将产生异常 
	package ch09; 
	public class Demo{  
		public static void main(String[] args){   
			int i;   
			int[] a={1,2,3,4};   
			for(i=0;i<5;i++)    
				System.out.println("  a["+i+"]="+a[i]);   
			System.out.println("5/0"+(5/0));  
		} 
	} 
	运行结果: 
	Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 
	Index 4 out of bounds 	for length 4  at ch09.Demo.main(Demo.java:7) 
 
	Exception in thread "main" java.lang.ArithmeticException: / by zero  at 
	ch09.Demo.main(Demo.java:8) 
 
2. 使用try-catch-finally捕获和处理异常 语法结构: 
 	try{   
 		要检查的语句序列:可能要抛出异常的代码 
 	}catch(异常类名 形参对象名){   
 		异常发生时处理的语句序列 
 	}finally{   
 		无论是否产生异常,都要执行这部分语句 
 	} 
示例: 
	package ch09; 
	import java.text.ParseException; 
	import java.text.SimpleDateFormat; 
	import java.util.Date; 
	import java.util.Scanner; 
	public class Demo{ 
		public static void main(String[] args){ 
  			Scanner scn=new Scanner(System.in); 
  			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
  			System.out.println("请输入出生日期(yyyy-MM-dd):"); 
  			String strBirth=scn.next(); 
  			try { 
   				Date birth=sdf.parse(strBirth); 
  				System.out.println("生日:"+birth); 
  			}catch(ParseException pe) { 
   				System.out.println("生日错误!"); 
   				pe.printStackTrace(); 
  			}finally { 
  				System.out.println("程序执行finally块!"); 
 			} 
		} 
	} 
 
3. 多异常的处理 
	1.多异常需要程序设计者熟悉各类异常。初学者在不熟悉各种异常类的情况下可 以使用Exception类。 
	2.多异常的处理思想与switch-case结构非常类似。 
示例: 
	package ch09; 
	public class Demo{ 
 		public static void main(String[] args){ 
 			int i; 
  			int[] a={1,2,3,4};  
  			for(i=0;i<5;i++){ 
   				try{ 
    				System.out.print("a["+i+"]/"+i+"="+(a[i]/i)); 
   				}catch(ArrayIndexOutOfBoundsException e){ 
    				System.out.print("捕获到了数组下标越界异常"); 
  				}catch(ArithmeticException e){ 
   					 System.out.print("异常类名称是:"+e); 
   				}catch(Exception e){ 
    				System.out.println("捕获"+e.getMessage()+"异常!"); 
   				}finally{ 
    				System.out.println("    finally   i="+i); 
   				} 
  			} 
  			System.out.println("继续!!"); 
 		} 
	} 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值