<>异常

<>1 概述

异常是一些用来封装错误信息的对象
它由异常的类型、提示信息、报错的行号提示三部分组成

<>2 异常的继承结构

<>3 异常的处理方式

当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出
当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常
大家可以结合生活中的例子:如果工作中遇到了问题,我们可以选择自己处理(捕获),或者交给上级处理(抛出)
<>捕获方式:

<>抛出方式:
在可能会会发生异常的方法上添加代码:
throws 异常类型
例如:public static void main(String[] args) throws Exception{ }

<>4 练习:异常测试

创建包: cn.tedu.exception
创建类: ExceptionDemo.java
package cn.tedu.exception; import java.util.InputMismatchException; import java
.util.Scanner; /**本类用于测试JAVA中异常的入门案例*/ public class ExceptionDemo { //1.创建入口函数
public static void main(String[] args)throws Exception{
//method();//调用method()--暴露异常 //method1();//调用,method1()--方案一,异常捕获
//method2();//调用,method2()--方案二,异常抛出 f();
//创建f()是为了写标准写法,main()调用之前捕获处理异常,不能抛给main() } public static void f() { try {
method2(); } catch (Exception e) { System.out.println("请输入正确的数据"); } }
//创建method2(),练习BUG解决方案二 /**总结8: * 如果方法抛出异常,那么谁调用这个方法,就需要解决这个方法抛出的异常(捕获解决/继续抛出)
* 所以main()调用了method2(),如果main()不捕获处理,就也需要抛出异常 *
但是注意:我们一般会在main()调用之前捕获解决异常,而不是把问题抛给main() * 因为没人解决了 * */ //public static void
method2() throws InputMismatchException,ArithmeticException,Exception{ public
static void method2() throws Exception{ //1.复写刚刚可能会发生异常的代码 System.out.println(
"请输入您要计算的第一个数据:"); int a = new Scanner(System.in).nextInt(); System.out.println(
"请输入您要计算的第二个数据:"); int b = new Scanner(System.in).nextInt(); System.out.println(
a/ b ); } //4.创建method1(),练习BUG解决方案一 /**异常捕获的语法规则: * try{ * 可能会出现异常的代码 *
}catch(异常类型 异常参数名){ * 如果捕获到异常的对应解决方案 * } * */ public static void method1() {
//5.1按照捕获语法完成try-catch结构 /**总结4:try中放的是可能会出现异常的代码*/
/**总结5:如果发生异常,就会被catch捕获到,执行被匹配到的解决方案*/ try { //5.2复写刚刚可能会发生异常的代码 System.out.
println("请输入您要计算的第一个数据:"); int a = new Scanner(System.in).nextInt(); System.out.
println("请输入您要计算的第二个数据:"); int b = new Scanner(System.in).nextInt(); System.out.
println( a / b ); }catch(InputMismatchException e) {//异常捕获1 System.out.println(
"输入类型不正确,请输入正确的整数~"); /**总结6:由于程序中可能出现多种异常,所以catch可以配合多次使用*/ }catch(
ArithmeticException e) {//异常捕获2 System.out.println("除数不能为0~");
/**总结7:如果还有上述两种异常之外的异常,用exception匹配捕获 * 这个就是多态最为经典的一种用法,我们不关心子类的类型 *
只要是可解决的异常,都是Exception的子类,多态会把这些异常当做父类型来看 * 进而捕获,使用通用异常解决方案来解决 * */ }catch(
Exception e) {//异常捕获3-通用解决方案 System.out.println("请输入正确的数据~"); } }
//2.创建method()用来人为的暴露异常 public static void method() { //3.1提示并接收用户输入的数据 System.
out.println("请输入您要计算的第一个数据:"); int a = new Scanner(System.in).nextInt(); System.
out.println("请输入您要计算的第二个数据:"); int b = new Scanner(System.in).nextInt();
//3.2计算输出除法运算的结果 //输入8和2.2,报错:InputMismatchException[输入不匹配异常]
//输入10和0,报错:ArithmeticException[算术异常,除数不能为0] System.out.println( a / b );
/**1.不要害怕BUG,真正勇士敢于直面自己写的BUG*/ /**2.学会看报错信息的错误提示,确定自己错误的方向*/
/**3.学会看报错信息的行号提示,哪里报错点哪里 * 注意:源码不会错,要看的是自己写的代码*/ } }
快捷键小补充:
Ctrl + Shift + T :在eclipse当中查找你想找到的类
Ctrl + T : 查看类的继承结构
Ctrl + O : 查看类的结构信息(大纲)

技术
©2019-2020 Toolsou All rights reserved,
css中上下左右居中的几种实现方法[CISCN 2019 初赛]Love Mathc/c++语言实现登陆界面Unity3D 人称设置(第一人称视角、第三人称视角)Fastadmin框架自定义搜索操作流程2021最新Python自动化软件测试笔试题(含答案)黑客帝国装逼的代码雨mysql数据库设置字符集配置修改my.ini文件(windows)python之panda模块1Python学习笔记:基础+进阶10道练习题