异常的讲解

一、异常的概述和分类
A:异常的概述
    * 异常就是Java程序在运行过程中出现的错误。
B:异常的分类
    * 通过API查看Throwable
    * Error
        * 服务器宕机,数据库崩溃等
    * Exception
C:异常的继承体系
    * Throwable
        * Error    
        * Exception
            * RuntimeException
JVM默认是如何处理异常的
A:JVM默认是如何处理异常的
    * main函数收到这个问题时,有两种处理方式:
    * a:自己将该问题处理,然后继续运行
    * b:自己没有针对的处理方式,只有交给调用main的jvm来处理
    * jvm有一个默认的异常处理机制,就将该异常进行处理.
    * 并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行
try...catch的方式处理异常1
A:异常处理的两种方式
    * a:try…catch…finally
        * try catch
        * try catch finally
        * try finally
    * b:throws
B:try...catch处理异常的基本格式
    * try…catch…finally
二、编译期异常和运行期异常的区别
A:编译期异常和运行期异常的区别
    * Java中的异常被分为两大类:编译时异常和运行时异常。
    * 所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常    
    * 编译时异常
        * Java程序必须显示处理,否则程序就会发生错误,无法通过编译
    * 运行时异常
        * 无需显示处理,也可以和编译时异常一样处理
Throwable的几个常见方法
A:Throwable的几个常见方法
    * a:getMessage()
        * 获取异常信息,返回字符串。
    * b:toString()
        * 获取异常类名和异常信息,返回字符串。
    * c:printStackTrace()
        * 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
throws的方式处理异常
A:throws的方式处理异常
    * 定义功能方法时,需要把出现的问题暴露出来让调用者去处理。
    * 那么就通过throws在方法上标识。
throw的概述以及和throws的区别
A:throw的概述
    * 在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。
B:throws和throw的区别
    * a:throws
        * 用在方法声明后面,跟的是异常类名
        * 可以跟多个异常类名,用逗号隔开
        * 表示抛出异常,由该方法的调用者来处理
    * b:throw
        * 用在方法体内,跟的是异常对象名
        * 只能抛出一个异常对象名
        * 表示抛出异常,由方法体内的语句处理
finally关键字的特点及作用
A:finally的特点
    * 被finally控制的语句体一定会执行
    * 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))
B:finally的作用
    * 用于释放资源,在IO流操作和数据库操作中会见到
自定义异常概述和基本使用
A:为什么需要自定义异常
    * 举例:人的年龄
B:自定义异常概述
    * 继承自Exception
    * 继承自RuntimeException
异常的注意事项及如何使用异常处理
A:异常注意事项
    * a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
    * b:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
    * c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
B:如何使用异常处理
    * 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws
    * 区别:
        * 后续程序需要继续运行就try
        * 后续程序不需要继续运行就throws        
    * 如果JDK没有提供对应的异常,需要自定义异常。
        * 键盘录入一个int类型的整数,对其求二进制表现形式
     * 如果录入的整数过大,给予提示,录入的整数过大请重新录入一个整数BigInteger
     * 如果录入的是小数,给予提示,录入的是小数,请重新录入一个整数
     * 如果录入的是其他字符,给予提示,录入的是非法字符,请重新录入一个整数
计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。课堂教学计划表 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。 课程名称 Java程序设计 教师姓名 专业班级 授课时间 授课地点 学时数 8 授课题目 §2Java语言开发基础 教学目标及要求 知识目标 掌握Java语言的基本组成; :・掌握数据类型、变量、运算符及表达式; :・掌握三种控制结构; 技能目标 :・培养学生规范编码和良好的程序设计风格; :・能够应用Java语言进行程序设计; 数据类型、运算符、字符串、数组等知识在编程过程中能熟练、准确应用; ・:・能熟练、准确地应用分支、循环、跳转三种流程执行过程; 教学重点 :・标识符命名规那么、数据类型与运算符; : 嵌套ifelse语句的用法; 教学难点 :・数值类型转换(强制转换、隐式转换)的用法; :・Switch语句的用法; 工程描述 :・工程1:猜数字游戏 教学方法 问题导引法:通过给学生提出实际编程中出现的问题来引入教学内容,使学生在主动分析、讨论和解决问题的过程中掌握所学知识; :・案例分析法:通过演示典型案例来讲解相关知识和技术的具体使用过程,使学生在具体的应用环境中加深对概念的理解; :・任务驱动法:通过完成工程中的各个任务逐步增强实版技能; 教学过程设计 一、新课导入与工程展示 :・首先通过提问、讨论等互动的形式引入课程新知识; : 然后通过演示本章工程来激发学生的学习兴趣,增强学生学习的积极性、主动性; 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。教案正文 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。 二、工程任务分解 ・:・带着学生分析本章工程并对工程进行任务分解,各工程分解任务如下: 工程1:猜数字游戏 ,任务1:确定变量 /任务2:选择数据类型 /任务3:确定表达式 /任务4:循环猜数,并统计次数 三、任务分析 :・根据工程及任务的描述和要求,对工程的各个任务进行分析,然后总结出完成该任务所需要的知识、技能和主要操作步骤; 四、相关知识点 :・针对各个任务分析阶段得到的知识和技能,并结合本章知识和技能目标对相关知识点进行详细讲解和说明; 五、任务实施 :・该阶段以完成各个任务为目的,教师利用相关知识和技能以演示的方式为学生详细讲解每个任务的完整实现过程; :・同时,该阶段要求学生进行跟随练习,以加深对知识和技能的理解和掌握; 六、技能拓展 :・在保证学生掌握了各个任务所涉及的基本知识和技能的基础上,再通过介绍一定的附加知识并辅导学生完成指定的"技能拓展任务",最终使学生对所学知识到达举一反三,融会贯通的学习目的; 七、指导与评价 对学生的任务实施过程进行指导,并对其中出现的问题进行总结,给出评价; 课后作业 :・完成课后相关习题; 课后分析 :・主要问题: 面向对象思、想的培养; 一、新课导入与工程展示思考:回顾C语言学过的基本语法知识? 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。运行各个源程序,为学生演示本章工程各个任务的实现效果。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。 二、工程任务分解本章工程可以划分为以下主要任务: 工程1:猜数字游戏任务1:确定变量任务2:选择数据类型任务3:确定表达式 任务4:循环猜数,并统计次数 三、任务1・1:确定变量 任务分析 猜数游戏中需要计算机产生随机数,还需要用户输入猜测的数字。 本任务就是要确定用哪些变量来保存这些数据,并且如何命名变量。 相关知识点 (1)标识符 Java中的包名、类名、方法名、参数名、变量名等都需要用一个符号来标识,这个符号就称为标识符,java中标识符的命名规那么如下: 组成:可由大小写字母、数字、下划夜(_)和美元符号($) 组成。 开头:必须以字母、下划线或美元符号($)开头。 字母:严格区分字母
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值