当前位置: 首页 > news >正文

慢慢学习,然后惊呆所有人(八,异常)

目录

什么是异常?

错误和异常的区别

异常的处理

try语法块:

抓捕异常:

多行异常的处理:

查看出现的异常情况 

自定义异常和抛出异常

Java中异常继承关系

异常抛出:

自定义异常:

finally关键字

常见的写法结构,(利用finally的特性,finally中尽量不要使用return)

想一想在finally前return会发生什么?(面试题

想一想nums是多少?


 

今天继续进行自己学习的笔记进行记录,欢迎大家对阅读与评论!

 

什么是异常?

异常就是在程序运行过程中,发生的不正常的(用户操作不正确,服务出现问题。等等)错误情况

错误和异常的区别

错误是致命的,程序编译不了,程序根本就执行不了,,异常是可挽救的,提高了代码的稳定性与健壮性

异常的处理

异常关键字
try尝试,抓捕异常
eatch获取异常
finally不管是抓捕到异常,finally都会执行(把一些重要的代码放在finally下,比如资源释放)
throws抛出异常,让调用者自己解决或再次抛出异常
throw异常对象

try语法块:

        如果没有抓捕到异常,则程序正常运行,不会进入到异常块中(catch中)!!!,继续向下进行

        如果抓捕到异常,会从出现异常的行立即进入到异常块中,try语法不会向下进行,继续向下进行

抓捕异常:

        尝试着抓捕对应的异常,针对具体问题,具体解决。

        例:(异常捕获提高代码的稳定性)       

public class Test {public static void main(String[] args) {int num=division(2,0);System.out.println(num);}public static int division(int x,int y){int num=0;try {//try抓捕异常//当感觉当前代码会中出现问题num=x/y;}catch (ArithmeticException e){//catch 获取异常//当出现“ArithmeticException”这个异常时会进入到下面代码当中System.out.println("除数不能为0。");}return num;}
}

多行异常的处理:

try {//try抓捕异常//当感觉当前代码会中出现问题//代码块}catch (异常名称1 异常别名){//catch 获取异常//当出现“异常名称1”这个异常时会进入到下面代码当中}catch (异常名称2 异常别名){//当出现“异常名称2”这个异常时会进入到下面代码当中
}//方法二(多态特性,不推荐使用)
try {//try抓捕异常//当感觉当前代码会中出现问题//代码块}catch (Exception 异常别名){//catch 获取异常//当出现异常时会进入到下面代码当中,在Java中所以异常都是Exception的子类
}

查看出现的异常情况 

 
异常别名.printStackTrace();//输出异常信息异常别名.getMessage()//在控制台上打印输出异常错误情况(调用栈的情况)

 

 

自定义异常和抛出异常

Java中异常继承关系

Throwable下有 Error (错误)与Exception异常:分类:RuntimeException "运行时异常" ,非运行时异常

异常抛出:

         向上抛出异常(谁调用出现的异常,谁解决,查找继承对应的解决,都没有就结束程序)

自定义异常:

        在Java中,只要继承了Exception类,该类就是一个异常类。


public class MYException extends Exception{//继承Exception就是一个异常类//可以重写父类Exception的全部方法或者需要的代码public MYException(){super();}}

建议继承RuntimeException异常类,好处就是不用抛出异常

public class MYException extends RuntimeException{//继承RuntimeException就是一个异常类//可以不用抛出异常
}
抛出异常(第二种解决异常的方法):
public class Test {public static void main(String[] args)  {int num = 0;try {//解决抛出的异常num = add(-1,0);} catch (Exception e) {e.printStackTrace();}System.out.println(num);}public static int add(int x,int y)throws NullPointerException,Exception{//throws抛出异常,可以一个或者多个,让调用者解决if(x<0 ||y<0){throw new RuntimeException("二个数必须是正数");}int num=x+y;return num;}
}

RuntimeException (运行时异常):只有在运行时,才能知道是否会有异常,并且异常可以不用抛出

是运行时异常:在javac(编译时,就会报错),必须处理(进行处理或者抛出)

finally关键字

常见的写法结构,(利用finally的特性,finally中尽量不要使用return)

try {}finally {//重要的必须要执行,如资源释放,垃圾回收      }

想一想在finally前return会发生什么?(面试题

疑问:为什么会有二个return,不会报错?

原因:在try中的return可能会因为异常的影响,不被执行,所以需要外面一个return进行返回值。

当没有异常时,就不会进行return+2.


public class Test {public static void main(String[] args)  {int i=tst();System.out.println(i);}public static int tst(){int num=10;try {System.out.println(num);return num+1;//在函数当中,如果在finally前使用return关键字,则在return完成前,先执行finally,在return}catch (Exception e){System.out.println("haha");}finally {System.out.println("必须要执行");}return num+2;}
}

在函数当中,如果在finally前使用return关键字,则在return完成前,先执行finally,在return

想一想nums是多少?


public class Test {public static void main(String[] args)  {int i=tst();System.out.println(i);}public static int tst(){int num=10;try {System.out.println(num);return num;}catch (Exception e){num+=10;System.out.println("haha");}finally {num++;System.out.println("必须要执行");}return num;}
}

 原因:虽然return进行了让步,但return的值已经固定了。(如果try当中的return没有成功,num的值才是11,如果捕获了异常了,则先num+10再+1,num值为21)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35267.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

并查集(Union Find)

算法背景 Union Find算法&#xff0c;中文并查集。主要用来解决图论中的连通判断问题&#xff0c;简单抽象问题为&#xff1a; 平面上有n个点给定他们之间两两连接关系 要求输入任意两个点&#xff0c;判断他们是否能够有一条路径联通 算法步骤 一旦有连接&#xff0c;就把…...

TCP/IP网络协议以及Android网络优化方案

引用文章地址&#xff1a;TCP/IP网络协议 文章目录TCP/IPTCP/IP 模型TCP 和 UDPTCP怎么保证传输过程的可靠性&#xff1f;TCP 为什么要三次握手/四次挥手网页请求一个 URL 的流程DNS 工作原理HTTPS 加密原理移动端如何优化一个网络请求呢&#xff1f;DNS 优化CacheControlQ&…...

单季度开出162家新店,被疫情拖累的名创优品继续破局?

名创优品还没有完全脱离疫情的困扰。 北京时间8月19日美股盘前&#xff0c;名创优品发布了截至2021年6月30日的2021财年第四季度财报和全年财报&#xff0c;第四季度全球店铺数量虽然继续逆势增长&#xff0c;但具体的财务指标走向各异&#xff0c;与疫情前的水平差距不一。 …...

webSocket服务端与客户端消息通讯

一、WebSocket是HTML5出的东西&#xff08;协议&#xff09;&#xff0c;也就是说HTTP协议没有变化&#xff0c;或者说没关系&#xff0c;但HTTP是不支持持久连接的&#xff08;长连接&#xff0c;循环连接的不算&#xff09; 首先HTTP有1.1和1.0之说&#xff0c;也就是所谓的k…...

Vue 虚拟列表,纵享丝滑

转载文章&#xff1a;https://juejin.cn/post/6937939870018961439...

文华财经指标软件指标博易大师软件指标公式

CDJZ:ABS(MA(C,N3)-MA(C,120))/MA(C,120) < 0.5; 阶段卖出: 3.2,COLORLICYAN; 清仓卖出: 3.5,COLOR0088FF,DOTLINE; STICKLINE(动力线 > REF(动力线,1) ,动力线 ,REF(动力线,1),3 ,1),COLORRED; STICKLINE(动力线 <REF(动力线,1) ,动力线 ,REF(动力线,1),3 ,1),CO…...

元力参堂:《披荆斩棘的哥哥》一经上线,能否带动芒果TV会员数增长

随着芒果TV《披荆斩棘的哥哥》大热&#xff0c;播放量就占据了综艺热度榜榜首。芒果超媒发布了2021年半年报&#xff0c;公司2021年1-6月实现营业收入78.53亿元&#xff0c;同比增长36.02%。从财报来看&#xff0c;芒果超媒营收的增长&#xff0c;主要还是来源于其主要业务芒果…...

关于环境变量定义prompt实现$替换成用户+当前路径提示

set prompt "// ${HOST}:$cwd % " alias cd cd \!* ;set prompt "// ${HOST}:$cwd % "...

redis数据结构

redis的使用 http://c.biancheng.net/view/4506.html 以下内容均来自该网站 http://c.biancheng.net/view/4540.html 1 字符串数据结构 上面是Redis字符串数据结构 哈希数据结构 一个key对应着一个hash结构&#xff0c;这个hash结构里面也是有很多键值对&#xff0c;key-va…...

简单的出入库管理软件一体化管理

关于库房管理软件&#xff0c;很多人都会问到这样的问题&#xff1a;有免费仓库出入库管理软件推荐吗&#xff1f;有没有简单上手&#xff0c;不收费的管理软件&#xff1f;找一款只需要看到库存的软件&#xff1f;等等&#xff0c;其实现在市面上很多出入库管理软件&#xff0…...

【Servlet】servlet中文显示问题

通过servlet类的doGet、doPost、service方法的HttpServletRequest request获取的参数中&#xff0c;如果有中文会出现乱码问题。 同样&#xff0c;通过HttpServletResponse response返回浏览器的html字符串中&#xff0c;也会出现中文乱码问题。 public class LoginServlet ex…...

spring-boot-starter-redis和spring-boot-starter-data-redis的依赖的区别

spring-boot-starter-redis 1.4.1.RELEASE版本 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId><version>1.4.1.RELEASE</version></dependency> 具体引入的依…...

mysql基础-常用sql语句

常用sql语句整理 在mysql中&#xff0c;常用sql语句为&#xff1a; 修改密码&#xff1a; alter user rootlocalhost identified with mysql_native_password BY 新密码; alter user rootlocalhost identified with mysql_native_password BY 123456;DDL&#xff08;Data Def…...

2021年婴儿监护器行业最新趋势报告——附下载链接

来源 | 凯度&天猫 婴儿监护器在全球范围快速增长&#xff0c;目前北美市场仍占主导地位。但是中国婴儿监护器市场占有率增长迅速&#xff0c;预计到2021年&#xff0c;婴儿监护器市场全球市场中&#xff0c;中国份额将达9.09%。天猫上&#xff0c;婴儿监护器销售增长尤为迅…...

从零开始学习C语言之联合体(参考结构体类比着看)

还没想好怎么写&#xff0c;先鸽着&#xff0c;抽空补上...

程序员的自我修养——(2)编译与链接

catalog构建预编译编译汇编链接构建 构建build 是 ide里的词&#xff0c;构建 编译 链接。 一个gcc 1.c&#xff0c;其实是&#xff1a; 预处理 编译 汇编 链接 预编译 源文件&#xff0c;被预编译器cpp 编译成&#xff1a; .i文件。 gcc -E 1.c -o 1.i 展开所有的#d…...

进出境快件如何报关

&#xff08;一&#xff09;快件的报关  1.快件的报关和查验应当在运营人所在地海关办公时间和专门监管场所内进行。如需在海关办公时间以外或专门监管场所以外进行&#xff0c;需事先商得海关同意&#xff0c;并向海关无偿提供必需的办公场所及必备的设施。 2.进境的快件…...

深度学习常用数据集

常用数据集Iris数据集&#xff08;鸢尾花数据集&#xff09;MushRoom数据集&#xff08;蘑菇数据集&#xff09;Bostom Housing数据集&#xff08;波士顿房价数据集&#xff09;Linnerrud 数据集MINST数据集Caltech101数据集Caltech256数据集CIFAR-10数据集CIFAR-100数据集SVHN…...

HTTP-2做错了什么?刚刚辉煌2年就要被弃用了!?

最近一段时间以来&#xff0c;关于HTTP/3的新闻有很多&#xff0c;越来越多的国际大公司已经开始使用HTTP/3了。 所以&#xff0c;HTTP/3已经是箭在弦上了&#xff0c;全面使用只是个时间问题&#xff0c;那么&#xff0c;作为一线开发者&#xff0c;我们也是时候了解下到底什么…...

JVM篇-知识点梳理

导致OutOfMemoryError异常的常见原因&#xff1a; 1内存中加载的数据量过于庞大&#xff0c;如一次从数据库取出过多数据&#xff1b; 2集合类中有对对象的引用&#xff0c;使用完后未清空&#xff0c;使得JVM不能回收&#xff1b; 3代码中存在死循环或循环产生过多重复的对…...

重拾React框架学习笔记总结

重拾React框架学习笔记总结 环境搭建 nvm nvm用来管理node版本。 brew install nvmnvm ls-remote // 查看所有的node可用版本 nvm list // 查看已安装node版本 nvm install 版本号 // 下载指定node版本&#xff0c;如nvm install v11.14.0 nvm use 版本号 // 使用指定版…...

客户端负载均衡Ribbon

文章目录Ribbon1&#xff09;、Ribbon模块2&#xff09;、RestTemplate结合Ribbon使用I、使用RestTemplateII、整合Ribbon3&#xff09;、负载均衡策略介绍4&#xff09;、自定义负载策略5&#xff09;、配置详情I、常用配置II、代码配置RibbonIII、配置文件方式配置Ribbon6&am…...

用Python搭建股票舆情分析系统

写在前面 下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统&#xff0c;其中将先通过金融界网站爬取指定股票在一段时间的新闻&#xff0c;然后通过百度情感分析接口&#xff0c;用于评估指定股票的正面和反面新闻的占比&#xff0c;以此确定该股票是处于利好还是…...

python学习之路(第八天)---re模块正则表达式

python学习之路&#xff08;第八天&#xff09;—re模块正则表达式 python学习之路&#xff08;第八天&#xff09;---re模块正则表达式在线正则匹配正则匹配语法re.compile方法re.match方法re.search方法re.finditer方法转义匹配findall()正则表达式的实例正则表达式&#xff…...

win10开启局域网远程桌面连接

要求&#xff1a;两台电脑&#xff0c;同时连接在同一局域网。假设是电脑A开启允许局域网远程桌面&#xff0c;然后电脑B连接。这两台电脑需要按照下面的步骤来做。 一、电脑A 1.点击此电脑图标&#xff0c;右键&#xff0c;属性。 2.点击远程设置 3.开启允许被远程连接 4.打开…...

740_CTEX安装

全部学习汇总&#xff1a; https://github.com/GreyZhang/g_Tex 最终还是走上了这条路&#xff0c;没有抵制住这个神秘的诱惑。其实&#xff0c;TEX对我来说似乎并不是一个必须要接触的东西&#xff0c;接触的最大原因也是因为高德纳创造了他&#xff0c;我想看看这一套工具背后…...

Python Day9函数

一函数使用步骤 &#xff08;1&#xff09;定义函数 &#xff08;2&#xff09;调用函数 如&#xff1a; 若不调用函数&#xff0c;函数内部的代码不会执行 二函数的参数的作用 三函数的返回值的作用 在函数中&#xff0c;如果需要返回结果给用户需要使用函数返…...

《零基础安装 Oracle 数据库》RAC集群系列 ❸ 简单两步快速安装 Oracle 18C RAC 数据库

前言 很多朋友吐槽我的脚本不会用&#xff0c;看不懂&#xff0c;哎&#xff0c;一言难尽&#xff01;于是&#xff0c;我将 [vagrant virtualbox shell脚本] 组合起来&#xff0c;实现了零基础也可安装 Oracle 数据库的方式&#xff0c;我称之为 新手纯享版本&#xff0c;真…...

java16语言新特性

新语言特性 JEP 394&#xff0c;适用于 instanceof 的模式匹配模式匹配&#xff08;Pattern Matching&#xff09;最早在 Java 14 中作为预览特性引入&#xff0c;在 Java 15 中还是预览特性。模式匹配通过对 instacneof 运算符进行模式匹配来增强 Java 编程语言。模式匹配使程…...

入门图形学:屏幕波爆特效

最近bilibili看了黑神话悟空的UE5演示视频&#xff0c;感觉是真牛逼&#xff0c;地址&#xff1a;黑神花悟空UE5实机演示视频 遥想我也算是国内第一批用ue4的开发者了&#xff0c;15年开始用ue4.7源码版&#xff0c;做了一年多就又用回u3d了&#xff0c;哈哈&#xff0c;主要因…...

os安装镜像下载路径(阿里云)

os安装镜像下载路径&#xff08;阿里云&#xff09; https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/...

阿里云操作系统镜像地址

阿里巴巴开源镜像地址&#xff0c;包括centos、ubuntu、redhat等linux操作系统的镜像 还有k8s&#xff0c;docker等 https://opsx.alibaba.com/mirror centOS7地址 http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso...

Linux附记:Centos 8 更改YUM源(BaseOS)为阿里云

在yum install nmap的时候下载速度才7K/s&#xff0c;所以想着把Yum源改成国内的吧。 看了很多文章&#xff0c;yum.repos.d文件夹内的BaseOS.repo文件名和我这个不一致&#xff0c;所幸自己记录下吧 1、进入yum目录 cd /etc/yum.repos.d 2、备份当前yum源 cp CentOS-Linux-…...

docker安装-环境阿里OS7安装

docker安装-环境阿里OS7安装 官网地址 第一步 curl -fsSL https://get.docker.com -o get-docker.sh第二步 sh get-docker.sh第三步-- 开启docker systemctl start docker第四步–查看docker版本 docker version欧克...

鸿蒙系统跟阿里os,同是国产系统,为什么华为鸿蒙被夸阿里os无人问津,李楠说出真相...

近日华为召开了2019年开发者大会&#xff0c;在大会上正式发布了鸿蒙操作系统&#xff0c;并且明确表示&#xff0c;华为鸿蒙系统将支持手机领域。并且该系统是开放式系统&#xff0c;也就是说未来国产手机都能搭载鸿蒙系统&#xff0c;对此大家也是很期待。与此同时&#xff0…...

Python源码剖析2-字符串对象PyStringObject

二、 1、PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象。当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不能再被改变了。这一点特性使得 PyStringObject 对象能作为 PyDictObject 的键值,但同时也使得一些字符串操作的效率大大降低…...

阿里云 centeros7.4 配置ftp

安装vstfp 配置 /etc/vsftpd/vsftpd.conf 主要配置如下 listen_port21 pam_service_namevsftpd userlist_enableYES tcp_wrappersYES pasv_enableYES pasv_min_port30000 pasv_max_port30100 virtual_use_local_privsYES 注意ip6listen 和 listen 只能一个为true 添加用户\设置…...

center os 7配置阿里云的yum源

center os 7配置阿里云的yum源1&#xff09;下载repo文件2&#xff09;备份并替换系统的repo文件3&#xff09;执行yum源更新命令4&#xff09;过程报错1&#xff09;下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2&#xff09;备份并替换系统的repo文件 c…...

阿里云服务器配置(center os https)

关于阿里云服务器配置过程中各种问题的记录&#xff1a; 2018/6/18 买了阿里云ces服务器&#xff0c;服务器配置&#xff1a;1 vCPU 1 GB 40g硬盘&#xff0c;center os 6.8 32位&#xff0c; 按流量计费&#xff0c;买了5年费用852元&#xff08;不包括流量费用&#xff09;。…...

若依框架部署到阿里云服务器

大家好啊&#xff0c;初次接触若依框架&#xff0c;经过几天的学习&#xff0c;也是成功的把若依部署到了阿里云服务器上&#xff0c;写这篇文章也是希望对刚刚接触学习有点帮助。废话少说了&#xff0c;下面直接开始正题。 想部署到阿里云服务器&#xff0c;首先得去申请一个…...

阿里云服务器镜像Anolis OS 8.2 RHCK 64位操作系统说明

阿里云服务器Linux系统可选Anolis OS镜像&#xff0c;Anolis OS 8.2 RHCK 64位操作系统&#xff0c;Anolis是CentOS 8的替代版本&#xff0c;是由龙蜥社区OpenAnolis推出的开源发行版本&#xff0c;Anolis OS具有企业级的稳定性、高性能、安全性和可靠性。Linux百科来详细说下A…...

【LINUX文件系统管理(1) 实验报告】

红字为所用语句&#xff0c;截图里也有 LINUX文件系统管理&#xff08;1&#xff09; 实验报告 可用 cd / 进入CentOS 根目录&#xff0c;再用 ls ls -a 或 ls -l 查看 也可直接用 ls -l / 进行查看 (1) 查看CentOS根目录下有哪些内容&#xff1f; (2) 进入/tmp目录&#xff…...

Linux系统管理---RAID磁盘阵列

目录 一、介绍 二、RAID 0&#xff1a; 三、RAID 1&#xff1a; 四、RAID 10&#xff1a; 六、raid 5&#xff1a; 七、预备磁盘功能&#xff08;spare disk&#xff09;&#xff1a; 一、介绍 RAID存储系统是被广泛应用于生产环境的一种存储解决方案。在1978年&#xff0…...

Linux系统管理-用户管理-组管理-2

Linux系统管理2. Linux系统管理2.1用户管理1. 任何使用linux的系统资源的用户&#xff0c;必须使用一个合法的账号和密码&#xff0c;账号和密码一般都是向系统管理员申请。2. 添加用户&#xff1a;useradd [选项] 用户名3. 给用户设置密码&#xff1a;passwd 用户名4. 删除用户…...

实验四 Linux系统管理(一)

文章目录一、实验目的二、实验要求三、实验内容&#xff08;要求详细列出步骤截图&#xff09;一、实验目的 掌握用户管理的基本内容和原理&#xff1b;理解与用户管理有关的工具与命令的具体作用以及关键部分的内容&#xff1b;从用户管理的角度初步理解系统安全管理的具体内…...

Linux基础篇之系统管理

这里写目录标题1. 进程与服务1.1 service 服务管理基本语法(CentOS 6)经验技巧实战演练1.2 chkconfig 设置后台服务的自启配置&#xff08;CentOS 6 版本&#xff09;1.3 systemctl &#xff08;CentOS 7&#xff09;基本语法经验技巧实战演练1.4 systemctl 设置后台服务的自启…...

Linux系统管理常用知识点总结(1-5章)

目录 前言 第一章 基本命令 1.1 cd 切换目录 1.2 绝对路径/相对路径 1.3 pwd 打印当前目录 1.4 touch 创建文件 1.5 mkdir 创建目录 1.6 rm 删除 1.7 cp 复制/改名 1.8 mv 移动/改名 1.9 ls 打印目录 1.10 链接 1.11 du 查看磁盘占用 1.12 find 查找文件 第二章 目…...

“隐藏”自己?Get这些网络安全工具

土耳其石油管道事件、索尼影业被黑事件、社区医疗系统被黑、大型零售商家被黑、心脏流血&#xff08;Heartbleed&#xff09;等事件中。我们可以从中看到&#xff0c;消费级别的数据慢慢沦为被攻击的目标&#xff0c;或许它们离我们很远&#xff0c;又或许它们已经存在于我们的…...

年薪百万的技术面试都问啥?来收下这份必考题葵花宝典吧|套路

随着各大企业纷纷布局区块链&#xff0c;各行业对区块链人才求贤若渴&#xff0c;区块链从业者的待遇也是水涨船高。动辄百万的年薪通证激励&#xff0c;不知你是否已经蠢蠢欲动。不过区块链涉及的领域既多且杂&#xff0c;在面试中你不仅需要有牢固的知识储备&#xff0c;还需…...

从零开始学习 python-爬虫8月12日

在互联网上进行自动数据采集&#xff08;抓取&#xff09;这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”&#xff0c;有时会把网络数据采集程序称为网络机器人&#xff08;bots&#xff09;。最常用的方法是写一个自动化程序向网络服务器请求…...