首页 > 其他分享 >2024.1.22

2024.1.22

时间:2024-01-22 22:44:07浏览次数:40  
标签:语句 2024.1 22 代码 try finally catch 异常

1.Throwable类方法
(1)public String getMessage()
返回发生的异常的详细信息
(2)public Throwable getCause()
返回一个Throwable对象代表异常原因
(3)public String toString()
返回此Throwable的简短描述
(4)public void printStackTrace()
将此Throwable及其回溯打印到标准错误流
(5)public StackTraceElement[] getStackTrace()
返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。
(6)public Throwable fillInStackTrace()
用当前的调用栈层次填充Throwable对象栈层次,添加到栈层次任何先前信息中

2.捕获异常
使用try和catch关键字可以捕获异常。try/catch代码放在异常可能发生的地方:
try{程序代码}catch(ExceptionName e){//catch块}
catch语句包含要捕获的声明。当保护代码块中发生一个异常时,try后面的catch就会被检查。如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样的。

一个try代码块后面跟随多个catch代码块的情况叫多重捕获:
try{//程序代码}
catch(异常类型1 异常变量名1){//程序代码}
catch(异常类型2 异常变量名2){//程序代码}
可以在try后面添加任意数量的catch块。如果保护代码中发生异常,异常被抛给第一个catch语句块,如果异常数据类型与ExceptionType1匹配,它在这里就会被捕获。如果不匹配,它会被传递给第二个catch语句块。如此,知道异常被捕获或者通过所有catch语句块。

3.throw关键字
throw关键字用于在当前抛出一个异常。通常情况下,当代码执行到某个条件下无法继续正常执行时,可以使用throw关键字抛出异常,以告知调用者当前代码的执行状态。

4.throws关键字
throws用于在方法声明中指定该方法可能抛出的异常。当方法内部抛出指定类型的异常时,该异常会被传递给调用该方法的代码,并在该代码中处理异常。

5.finally关键字
finally关键字用来创建在try代码块后面执行的代码块。无论是否发生异常,finally代码块中的代码总会被执行。在finally代码块中,可以运行清理类型等收尾善后的语句。finally代码块出现在catch代码块后面:
try{//程序语句}
catch(可能出现的异常类型 异常变量名){//程序语句}
finally{//程序语句}
⚠️
·catch语句不能独立于try存在
·try/catch后面不一定要加finally语句
·try代码语句后面不能既没有catch语句又没有finally语句
·try/finally/catch之间不能添加任何代码块

6.try-with-resources
语句执行完毕后确保每个资源都被自动关闭。
try-with-resources是一种异常处理机制,它可以简化资源管理代码的编写
语法:
try(resources declaration){//程序语句}
catch(ExceptionType el){//异常块}

⚠️
·java中可以自定义异常
·所有异常都必须是Throwable的子类
·希望写一个检查性异常类,则需要Exception类
·想写一个运行时异常,需要继承RuntimeException类
class MyException extends Exception{}

标签:语句,2024.1,22,代码,try,finally,catch,异常
From: https://www.cnblogs.com/KJHo/p/17981265

相关文章

  • Inplementation of Binary Search Tree【1月22日学习笔记】
    点击查看代码//InplementationofBinarySearchTree#include<iostream>usingnamespacestd;structbstnode{ intdata; bstnode*left; bstnode*right;};/*bstnode*root=NULL;*//*root=NULL;wrong*//*全局范围内的变量的初始化必须在声......
  • JAVA 学习心得1.22
    JAVA学习1:一、一些小知识1.计算机由软件硬件组成软件—平时用的app等。硬件—鼠标键盘等。2.Java之父——詹姆斯·高斯林,由SUN公司研发。3.使用需要JDK工具包,调整Java环境,PATH等。4.Java具有跨平台性,简单来说就是很多平台都能够运行和编译java语言的文件。二、一切的......
  • 如何备份已经安装并设置AutoHotkey脚本编程环境的Windows电脑系统分区 2024.01.22
     如何备份已经安装并设置AutoHotkey脚本编程环境的Windows电脑系统分区2024.01.22第1步:邮购并制作银灿IS903可启动U盘,量产Emulation-CD-ROM所用ISO镜像选用从www.firpe.cn下载的PE光盘镜像。第2步:正确安装电脑软件并调整电脑各项设置备份硬盘分区表和启动扇区信息转移个......
  • 0122今日笔记
    一java环境搭建jdk长期支持版本jdk8111721可以到oracle官网下载自己需要的jdk版本下载后安装到D盘(建议不要在c盘)在电脑系统中找到系统设置找到系统环境在系统变量中创建JAVAHOME路径就是直接的dk路径然后在pa然后一直点击确定就行测试是否成功按win+R+cmd进......
  • 0122 所学内容
    Java基础**注释单行注释//多行注释/**/文档注释/***/**标识符的命名规则1.数字字母下划线$数字不能开头开头大写2.尽量做到见名知意**JAVA开发手册1.不能以下划线美元符号开始结束2.严禁使用中文和拼音与英文混合的情况3.UpperCamelCase(大驼峰命名法)//Hello......
  • 云原生周刊:Meshery v0.70 发布 | 2024.1.22
    开源项目推荐flux-cluster-template该项目用于部署由Flux、SOPS、GitHubActions、Renovate、Cilium等支持的Kubernetes集群,专注于使用GitOps实践和基础设施自动化。Kine该项目可以在MySQL、Postgres、SQLite、Dqlite等数据库上运行Kubernetes,而不是使用etcd。Kube......
  • CF1922F Replace on Segment
    看到有区间操作,结合\(n\le100\)的数据范围,直接考虑区间dp。设\(f_{l,r,x}\)表示将区间\([l,r]\)全部替换成\(x\)的最小步数。首先有\(f_{l,r,x}=\max_{p=l}^{r-1}f_{l,p,x}+f_{p+1,r,x}\),但这无法将该状态下的所有的情况都转移到,所以考虑再设一个\(g_{l,r,x}\)表示......
  • 2024.1.22日报
    今天继续spark实验,主要是完成5和6吸取了昨天的教训,先把文件传到hdfs再操作            实验六首先是配置好了flume avor测试 开启三个node1窗口分别用于创建文件,写入文件,显示文件内容 测试二 监听44444端口,并输出helloworld......
  • Queue-Linked List Implementation【1月22日学习笔记】
    点击查看代码//Queue-LinkedListImplementation#include<iostream>usingnamespacestd;structnode{ intdata; node*next;};node*front=NULL;node*rear=NULL;//末指针·,则不用遍历整个链表,constanttimevoidEnqueue(intx){ node*temp=newnode; ......
  • 【240122-1】已知:a^2-b^2=6,ab=4 求:a、b的值?
    ......