JAVA关于异常的处理

news2024/11/18 9:45:04

1.throw和throws

public static int score(int math,int chinese) throws Exception {
        if(math < 0 || chinese < 0){
            throw new Exception();
        }
        return (math+chinese)/2;

    }

从这里看,
throw是在方法体中处理异常的,抛出,这个时候,Exception中也可以设置字符串作为日志, 但是,要配合throws使用
throws是将异常抛给调用者,注意throws是可以直接单独使用的
2. try catch finally
try catch 就是try中是可能出问题的代码,注意,如果出现异常,则到异常出现的位置,终止,直接跳入catch
而finally是catch完了之后处理finally ,但是,finally不会影响catch中的值
在这里插入图片描述
如果根据结果看,运行了finally而没运行catch

public static void main(String[] args) {
        int[] a = {1,2};
        Student s = new Student();
        System.out.println("giao(a) = " + giao(a,s).name);
    }

    public static Student giao(int[] a,Student s){
        try {
            a[8]=10;
        }catch (Exception e){
            s.name ="是最后输出的么";
            return s;
        }finally {
            s.name ="不是阿giao了";
        }
        s.name = "终点";
        return s;
    }

在这里插入图片描述
根据这段代码来分析一下,
显然finally是最后运行的,不然的话,名字应该是最后输出
但是请注意,这里能改变名称,是因为,传的是对象,也就是指针,改变了地址中的值,但是如果是值传递,就没有作用了。上代码

   public static void main(String[] args) {
        int[] a = {1,2};
        
        System.out.println("giao(a) = " + giao(a));
    }

    public static int giao(int[] a){
        int i = 5;
        try {
            a[8]=10;
        }catch (Exception e){
            i++;
            return i;
        }finally {
            i--;
        }
        return 100;
    }

在这里插入图片描述
从结果看,这里finally中的i–并没有对返回的i起作用。

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

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

相关文章

centos7 解决 IP自动变化的问题

进入&#xff1a;cd /etc/sysconfig/network-scripts/ 找到&#xff1a;ircfg-ens33 文件 vi 打开 BOOTPROTO“static” IPADDR192.168.98.130 //设置的本机ip&#xff0c;需和网关在同一网段 192.168.234.xxx NETMASK255.255.255.0 子网掩码 设置好后 :wq systemctl restart…

Linux下Redis 6.2.6安装和部署详细图文步骤

目录 1、下载redis6.2.6安装包2、解压压缩文件3、重命名和移动文件4、redis编译安装1&#xff09;redis编译&#xff0c;执行make命令。2&#xff09;redis安装执行make install命令。 5、redis启动6、设置后台启动redis7、设置redis密码8、设置redis服务远程访问1、防火墙添加…

windows10关闭WPS广告及清理备份与设置升级

1、清理备份 备份开启可以预防断电等情况意外关闭文档&#xff0c;导致内容丢失&#xff0c;建议开启备份 2、WPS广告&#xff0c;恶意已久&#xff0c;不解释 3、路径 C:\Users\UserHostname\AppData\Local\Kingsoft\WPS Office\11.1.0.14309\office6 ksomisc.exe 程序。 …

微信小程序页面跳转的区别

①wx.navigateTo&#xff1a;跳转到新页面&#xff0c;可以返回上一层页面 ②wx.redirectTo&#xff1a;跳转到新页面并且关闭当前页面&#xff0c;不可以返回上一层页面(跳转到指定的非TabBar页面) ③wx.reLaunch&#xff1a;跳转到新页面并且关闭当前所有页面&#xff0c;不可…

怎么保护电脑重要文件夹?

当我们在电脑文件夹中存放重要数据时&#xff0c;为了避免数据泄露&#xff0c;就必须使用相应的方式保护文件夹的数据安全。那么我们该怎么保护电脑重要文件夹呢&#xff1f;下面我们就一起来了解一下吧。 文件夹隐藏 我们在文件夹上单击鼠标右键选择“属性”&#xff0c;随后…

Galaxybase-convert实践:两步实现Neo4j数据迁移

前言 Galaxybase是创邻科技自主研发的国内首款超大规模分布式并行原生图平台产品&#xff0c;拥有优异的数据读写查询性能、强⼤的可视化分析能力、丰富的可编程接口和开箱即用的图算法引擎&#xff0c;是集存储、计算、分析于一体的图数据全⽣命周期⼀站式管理平台&#xff0…

ProtoBuf—2

文章目录 1、字段规则2、消息类型的定义和使用3、enum的使用4、any类型2、oneof类型3、map类型 1、字段规则 消息的字段可以用以下几种规则来修饰&#xff1a; singular&#xff1a;消息中可以包含该字段零次或一次(不超过一次)。proto3语法中&#xff0c;字段默认使用该规则…

【XML技术】web杂谈(3)之深入理解什么是XML、XML的语法详解

涉及知识点 什么是 XML&#xff0c;XML的特征&#xff0c;XML的基本语法及应用&#xff0c;应用程序接口&#xff08;DOM&SAX&#xff09;&#xff0c;XML的文档的显示&#xff0c;深入了解XML技术。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可…

马氏距离mahalanobis distance

来看个题 【解】 代码验证 import numpy as np from scipy.spatial.distance import mahalanobis# 定义四个点坐标的数组 points np.array([[0.5, 1.5], [4, 4], [8, 6], [2, 2]])# 计算协方差矩阵 covariance_matrix np.cov(points.T)# 计算马氏距离 mean np.mean(points,…

策略模式Strategy介绍与C++实现

目录 1、策略模式的提出&#xff1a; 2、策略模式定义&#xff1a; 3、策略模式总结&#xff1a; 4、需求描述&#xff1a; 5、普通实现 6、使用策略模式实现 1、策略模式的提出&#xff1a; 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经…

Ubuntu下 NVIDIA Container Runtime 安装与使用

NVIDIA Container Runtime官网 GitHub仓库&#xff1a;Docker 是开发人员采用最广泛的容器技术。借助 NVIDIA Container Runtime&#xff0c;开发人员只需在创建容器期间注册一个新的运行时&#xff0c;即可将 NVIDIA GPU 暴露给容器中的应用程序。用于 Docker 的 NVIDIA Conta…

自然语言处理:任务与应用

文章目录 一、基本任务1.词性标注Part-of-speech (POS) tagging2.命名实体识别Named Entity Recognition (NER)3.共指消解Coreference Resolution4.句法依赖解析Syntactic Dependency Parsing5.中文分词Chinese Word Segmentation 二、常见应用1.文本匹配2. 知识图谱3. 问答系统…

微服务中的负载均衡

如图 有三处需要负载均衡 这里主要讲内部的grpc调用的 负载均衡 图中3的地方 ① 集中式load balance ② 进程内load balance ③独立进程load balance 首选第二种方式

华为MateBook 16 2021款锐龙版R7(CREM-WFD9)(CREM-WFG9)原装出厂Win11系统工厂模式,恢复原厂系统

HUAWEI华为笔记本电脑&#xff0c;MateBook 16 2021款 锐龙版 R7(CREM-WFD9) (CREM-WFG9) 原厂Windows11系统&#xff0c;带F10恢复功能&#xff0c;原装OEM专用系统&#xff0c;恢复出厂状态 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、华为电脑管家等预装程序 …

Java启动项目时,控制台报端口被占用,解决办法

端口占用一般是现在有别的程序正在使用该端口 第一步可以先查出来是哪个程序在占用&#xff1a; netstat -aon | find "8113" //8113为被占用的端口号 此时的结果是这样的&#xff0c;查询出来的为占用此端口程序的PID&#xff08; 25472 &#xff09; 然后根据…

隐式迭代是什么意思?jQuery选择器隐式迭代

在使用jQuery 选择器获取元素后&#xff0c;如果不考虑获取到的元素数量&#xff0c;直接对元素进行操作&#xff0c;则在操作时会发生隐式迭代。隐式迭代是指&#xff0c;当要操作的元素实际有多个时&#xff0c;jQuery 会自动对所有的元素进行操作&#xff0c;示例代码如下。…

Centos 系统中使用 Firefix 播放视频 - VLC播放器的安装

问题&#xff1a; 出于刷视频的需要&#xff0c;需要使用虚拟机&#xff08;Centos7&#xff09;上的 Firefix 来播放视频&#xff0c;经确认安装 flash 的方式是不行的。事实上在 Firefix 播放视频仅需要安装 VLC 播放器就可以了&#xff0c;以下记录安装 VLC 视频播放器的过程…

Selenium教程__截图(16)

selenium截图有两种方式 截取全屏 get_screenshot_as_file(filename)&#xff1a;将截图转化成文件保存到本地&#xff0c;filename为保存的文件路径get_screenshot_as_base64()&#xff1a;将截图转化成base64get_screenshot_as_png()&#xff1a;将截图转化成png 截取指定元…

Java学习记录之struts2(一)

1 struts入门 1.1 介绍  框架&#xff1a;就是半成品&#xff0c;框架已经完成一些通用功能。只需要实现与业务有关功能。  版本&#xff1a;struts-2.3.15.3-all 1.2 核心功能 1.3 目录结构  apps / struts2-blank.war 最简答环境  apps / struts2-showcase.war 常…

【Linux】MySQL 主从复制与读写分离

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 MySQL 主从复制与读写分离 MySQL 主从复制与读写分离1、什么是读写分离2、为什么要读写分离3、什么时候要读写分离4、主从复制与读写分离5、mysql支持的复制类型6、主从复制的…