异常的介绍与处理

news/2025/3/19 4:29:07/

目录

第七章  异常

1.异常

2.处理方法

2.1.try-catch

2.2.多重catch块

2.3.finally

2.4.throw 与 throws

2.5.程序分析

3.自定义异常


内容仅供学习交流,如有问题请留言或私信!!!!!

有空您就点点赞


1.异常

        什么是异常:指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。

        异常分为Checked异常运行时异常

  • Checked异常必须捕获或者声明抛出
  • 运行时异常不要求必须捕获或者声明抛出  

常见的异常类型:

异常类型

说明

Exception

异常层次结构的父类

ArithmeticException

算术错误情形,如以零作除数

ArrayIndexOutOfBoundsException

数组下标越界

NullPointerException

尝试访问 null 对象成员

ClassNotFoundException

不能加载所需的类

IllegalArgumentException

方法接收到非法参数

ClassCastException

对象强制类型转换出错

NumberFormatException

数字格式转换异常,如把"abc"转换成数字

2.处理方法

        Java中的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws

2.1.try-catch

正常情况:执行  try-catch  后的代码段

public void method(){

         try {

                  // 代码段(此处不会产生异常)

         } catch (异常类型 ex) {

                 // 对异常进行处理的代码段

         }

         // 代码段

}

出现异常:捕获异常,异常是一种特殊的对象,类型为java.lang.Exception或其子类

public void method(){

         try {

                // 代码段 1

                // 产生异常的代码段 2

                // 代码段 3

         } catch (异常类型 ex) {

                 // 对异常进行处理的代码段4

         }

         // 代码段5

}

异常类型不匹配:

public void method(){

        try {

                 // 代码段 1

                // 产生异常的代码段 2

               // 代码段 3

        } catch (异常类型 ex) {

               // 对异常进行处理的代码段4

        }

        // 代码段5

}

  • catch块中处理异常
    • 加入用户自定义处理信息
  • 调用方法输出异常

    e.printStackTrace();

  • 异常对象常用的方法

方法

说明

void printStackTrace()

输出异常的堆栈信息

String getMessage()

返回异常信息描述字符串,

printStackTrace()输出信息的一部分

2.2.多重catch块

  • 引发多种类型的异常
    • 排列catch语句顺序:先子类后父类
    • 发生异常时按顺序逐个匹配
    • 只执行第一个与异常类型匹配的catch语句

2.3.finally

  • try-catch 后加finally块
    • 是否发生异常都执行
    • 不执行的唯一情况System.exit(1)

2.4.throw 与 throws

使用throws声明异常:

方法() throws 异常类型1,异常类型2 {   }

  • throws声明某个方法可能抛出的各种异常,多个异常用逗号隔开。
    • 方式1:调用者处理异常
    • 方式2:调用者继续声明异常
      • main()方法声明的异常由Java虚拟机处理

使用throw抛出异常:

throw new 异常类型( );

eg:

throw new MyStackOperationException("xxxx,xxxx");//手动抛出异常

throwthrows区别

throw

throws

生成并抛出异常

声明方法内抛出了异常

位于方法体内部,可作为单独语句使用

必须跟在方法参数列表后面,不能单独使用

抛出一个异常对象,且只能是一个

声明抛出异常类型,可以跟多个异常

异常体系结构:

2.5.程序分析

try-catch-finally中存在return语句的执行顺序:

package dh07;public class A {public int getInt(int i) {try {i++;return i;} catch (Exception e) {i++;}finally {i++;}return 0;}}//----------------------------------
package dh07;public class test {public static void main(String[] args) {A a = new A();a.getInt(1);System.out.println(a.getInt(1));}
}

        输入 i=1 ,代码执行结果是:2,但此时 finally = 3 

3.自定义异常

使用步骤:

  1. 定义异常类(异常继承 Exception 类或者 RuntimeException)
  2. 编写构造方法,继承父类的实现
  3. 实例化自定义异常对象
  4. 使用throw抛出       

异常的处理原则:

  • 异常处理与性能
  • 异常只能用于非正常情况
  • try中不能存放大量代码
  • catch中制定具体的异常类型
  • 需要对捕获的异常做处理


http://www.ppmy.cn/news/503893.html

相关文章

debian 修改桌面背景

桌面背景 push 图片到对应目录替换: adb push 图片 /usr/share/desktop-base/active-theme/wallpaper/contents/images/ 当前语言查看 cat /etc/default/locale //修改默认语言locale -a //显示本地支持语言locale //显示当前语言选项更改配置文件/etc/locale…

Android 设置桌面背景

通过WallpaperManager对象实现&#xff1a;try {WallpaperManager.getInstance(this).setResource(R.drawable.img_20141214_115037_1);//墙纸 } catch (IOException e) {e.printStackTrace(); } 需要添加权限&#xff1a; <uses-permission android:name"android.per…

群辉更改桌面背景

右上角的选项中的个人设置中的桌面选项

win7将html设为桌面背景,win7系统将桌面背景设置为自己心仪类型的方法

win7系统酷炫的桌面功能&#xff0c;和个性化的设计赢得广大用户的喜爱&#xff0c;有些用户会设置win7系统桌面背景&#xff0c;设置成为自己心仪的类型。win7的桌面背景比XP系统进步很多&#xff0c;功能更加的健全&#xff0c;选择机会更多了。那么win7系统如何将桌面背景设…

html文件变成桌面背景,将HTML文档设置为Windows桌面背景(转)

将HTML文档设置为Windows桌面背景(转)[more] 从Windows 3.X开始&#xff0c;系统就提供了设置桌面背景的功能&#xff0c;我们可以将自己喜爱的图片作为背景显示在桌面上&#xff0c;从而美化了用户的工作环境&#xff0c;因而深受广大用户的欢迎。不过在老版本的Windows中&…

计算机桌面背景设置时间,win7系统设置自动更换桌面背景和更换时间的设置方案...

win7系统使用久了&#xff0c;好多网友反馈说win7系统设置自动更换桌面背景和更换时间的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统设置自动更换桌面背景和更换时间的问题&#xff0c;面对win7系统设置自动更换桌面背景和更换时间的图文步骤非常简单&#xf…

C++定时切换桌面背景

本代码是将需要切换的图片路径保存到一个文件中&#xff0c;代码从文件中读取这些图片&#xff0c;并定期切换。 注意&#xff1a;编码方式用多字节字符集&#xff0c;否则会出现无法正确显示桌面背景的情况&#xff08;也就是屏幕变成黑色了--黑屏&#xff09;&#xff0c;原…

禁止用户修改计算机的桌面背景,win10系统设置禁止别人更改桌面背景的解决技巧...

有关win10系统设置禁止别人更改桌面背景的操作方法想必大家有所耳闻。但是能够对win10系统设置禁止别人更改桌面背景进行实际操作的人却不多。其实解决win10系统设置禁止别人更改桌面背景的问题也不是难事&#xff0c;小编这里提示两点&#xff1a;1、打开win10系统的开始菜单&…