java 异常处理知识点try-catch-finally(没有throws)

package com.wanyan.exception;

/*
 * 一.异常结构
 * 
 * java.lang.throwable
 *    |---- java.lang.Error:一般不便携针对性的代码进行处理
 *    |---- java.lang.Exeption: 可以进行异常处理
 *       |---- 编译时异常(checked)
 *          |----IOEception
 *             |----FileNotFoundException
 *          |----ClassNotFoundException
 *       |----- 运行异常(unchecked)
 *          |----Nu11PointerException //空指针异常
            |----ArrayIndexoutofBoundsException //数组脚标
            |----classCastException    //类型转换异常
            |----NumberFormatException  //数值转换异常
            |----InputMismatchException //输入不匹配异常
            |----ArithmeticException    //算术异常
    
 * 
 *  一. 异常的处理:抓抛模型
 *   
 *   过程一,"抛"。程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象。
                             并将此对象抛出。
             —旦抛出对象以后,其后的代码就不再执行。

          过程二。"抓"。可以理解为异常的处理方式: try-catch-finally 或者 throws



       二.try-catch-finally的使用
       try{
           //可能出现异常的代码
       }catch(异常类型1 变量1){   //变量名一般都要习惯用e表示
             //处理异常的方式1
       }catch(异常类型2 变量2){
             //处理异常的方式2
       }catch(异常类型3 变量3){
             //处理异常的方式3
       }
      ********************************** 
      finally{
           //一定会执行的代码
      } 
      
      
      说明;
	1. finally是可选的。
	2.使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象,
	       根据此对的类型,去catch中进行匹配
	3,一旦try中的异常对象匹配到某一个catch时,就进入catch中进行异常的处理。一旦处理完成,
	      就跳出当前的try-catch结构(在没有写finally的情况)。继续执行其后的代码
	4. catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓。
	   catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面。
	      否则,报错
    5.常用的异常对象处理的方式: String getMessage()   printStackTrare()
	6,在trv结构中声明的变骨,再出了trv结构以后,就不能再衲调用
  
      
 * 
 */

public class ExceptionTest {

	public void test1() {
		String str = "123";
		str = "abc";
      try {
		int num = Integer.parseInt(str);
	} catch (NumberFormatException e) {   //光标放在NumberFormatException上  然后 ctrl + t    查看范围的大小
		// TODO: handle exception
		System.out.println("出现数值转换异常了,不要着急。。。");
	}catch(NullPointerException  e) {
		System.out.println("出现空指针异常了,不要着急。。。");
	}
	}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java高级程序设计 第2章 异常处理 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第1页。 第2章 异常处理 2.1 什么是异常 2.2 处理异常 2.3 自定义异常与throw关键字 2.4 throws关键字 2.5 Java的内置异常 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第2页。 本章目标 理解异常及其作用 使用try-catch-finally语句捕获和处理异常 使用throwthrows关键字 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第3页。 本章任务 任务1 识别异常 任务2 处理异常 任务3 自定义百分制分数异常 任务4 使用throws关键字 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第4页。 2.1 什么是异常 任务1 识别异常 编程实现整数除法运算:接收用户输入的2个整数,除法运算后输出结果。根据用户的不同输入,可能产生如图所示的不同结果。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第5页。 知识点:异常的概念、异常处理机制 一、异常的概念 程序开发中一般会出现两种问题: 第一种,在编译期间被检测出来的错误,我们称之为语法错误,比如关键字拼写错误、语句丢失分号、变量名未定义等。如果程序中存在这类错误,将不能编译通过,不能生成字节码。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第6页。 第二种,没有语法错误编译成功了,但在程序运行期间出现错误,我们称之为运行错误,比如被访问对象没有正常初始化、访问数组元素时下标值超出范围等等。这种运行错误如果没有得到及时的处理,可能会造成程序提前中断、数据遗失乃至系统崩溃等问题。这种运行错误也就是我们所说的"异常"。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第7页。 二、异常处理机制 为了解决这种需要由程序员承担程序出错情况判断的不正规处理模式所带来的困难和阻碍,Java引入了异常处理机制,通过代码运行到出现错误的时候由系统抛出一个运行时异常,Java程序可以很容易地捕获并处理发生的异常情况。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第8页。 Java的异常类层次结构 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第9页。 2.2 处理异常 任务2 处理异常 完善任务1中的IntDivide程序,对除法运算中除数为0的异常进行处理,即使用户输入0值不能进行除法运算时也不会再粗鲁地直接中断程序执行了,运行效果如图所示。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第10页。 知识点try-catch-finally语句处理异常 try{ //需要监视异常的代码块,该区域如果发生异常就匹配catch来决定程序如何处理 } catch(异常类型1 异常的变量名1){ //处理异常语句组1 } catch(异常类型2 异常的变量名2){ //处理异常语句组2 } …… finally{ //最终执行的语句组 } Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第11页。 2.3 自定义异常与throw关键字 任务3 自定义百分制分数异常 编程实现:根据用户输入的分数判定成绩等级并输出。分数规定为百分制,一旦用户输入的分数不符合百分制分数要求,则请用户重新输入,直至输入分数正确,判定等级并输出为止。运行效果如图所示。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第12页。 知识点:自定义异常、throw关键字 一、自定义异常 <class> <自定义异常类名> <extends> <Exception>{ // 变量、构造方法、成员方法 } 二、throw关键字 <throw> <异常对象>; Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第13页。 2.4 throws关键字 任务4 使用throws关键字 编程实现与任务3相同的根据分数判定等级并输出的功能。 代码要求:将根据分数判等级的功能定义为方法,且方法内部不处理分数异常,而是将异常抛出给其调用者来进行处理。 Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第14页。 知识点throws关键字为方法声明异常 方法声明 <throws> <异常类1>,<异常类2>,…<异常类n> { //方法体,抛出异常 } Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第15页。 2.5 Java的内置异常 在核心语言包java.lang中

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值