Java异常处理 throw和throws

目录

  • throw
  • throws
  • 实例
    • 制造异常

在Java中,throwthrows关键字都与异常处理有关,但它们的使用方式和目的有所不同。

throw

throw关键字:

* `throw`用于在代码中显式地抛出一个异常。你可以使用它来触发一个异常,并指定异常的类型。
* `throw`通常用于在特定情况下触发异常,例如当输入数据无效或发生错误时。
* 当你使用`throw`关键字时,程序将立即中断当前操作,并跳转到处理该异常的代码。
* 示例:```java
public void validateInput(String input) {if (input == null || input.isEmpty()) {throw new IllegalArgumentException("Input cannot be null or empty");}
}
```

throws

throws关键字:

* `throws`用于声明方法可能会抛出的异常。它告诉调用者该方法可能会抛出异常,因此调用者需要处理或继续抛出该异常。
* 当方法可能抛出受检查异常时,必须在方法签名中使用`throws`关键字进行声明。这允许调用者知道并处理这些异常。
* `throws`关键字还可以用于声明方法可能会抛出运行时异常,这些运行时异常不需要显式声明。
* 示例:```java
public void divide(int a, int b) throws ArithmeticException {if (b == 0) {throw new ArithmeticException("Division by zero is not allowed");}int result = a / b;System.out.println("Result: " + result);
}
```

在上面的示例中,divide方法声明了它可能会抛出一个ArithmeticException异常。当除数为零时,该方法将抛出该异常。调用者可以使用try-catch块来捕获并处理该异常,或者选择继续抛出该异常。

实例

import java.util.Scanner;public class Except05 {//这是一个main方法,是程序的入口:public static void main(String[] args) throws Exception {//实现一个功能:两个数相除,当除数为0的时候,程序出现异常。try {devide();} catch (Exception e) {e.printStackTrace();}devide();}public static void devide() throws Exception {Scanner sc = new Scanner(System.in);System.out.println("请录入第一个数:");int num1 = sc.nextInt();System.out.println("请录入第二个数:");int num2 = sc.nextInt();if(num2 == 0 ){//除数为0 ,制造异常。//制造运行时异常:/*throw new RuntimeException();*///制造检查异常:/*try {throw new Exception();} catch (Exception e) {e.printStackTrace();}*/throw new Exception();}else{System.out.println("商:"+num1/num2);}}
}

在这里插入图片描述

制造异常

在这里插入图片描述

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

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

相关文章

python从入门到精通(十六):python爬虫的BeautifulSoup4

python爬虫的BeautifulSoup4 BeautifulSoup4导入模块解析文件创建对象python解析器beautifulsoup对象的种类Tag获取整个标签获取标签里的属性和属性值Navigablestring 获取标签里的内容BeautifulSoup获取整个文档Comment输出的内容不包含注释符号BeautifulSoup文档遍历Beautifu…

C#系列-C#访问hadoop API(9)

在C#中访问Hadoop通常涉及到与Hadoop分布式文件系统(HDFS)进行交互,以及可能执行MapReduce作业或其他Hadoop生态系统组件(如HBase或Hive)。虽然Hadoop原生是用Java编写的,但是可以通过一些库在C#中与Hadoop…

cf921(Div2)C题

寻找一段长为m的序列当中不存在的子序列 Problem - C - Codeforces void solve() {int n, k, m;std::cin >> n >> k >> m;std::string s;std::cin >> s;std::string t;int j 0;bool ok true;//长为nfor (int i 0; i < n; i) {//计数int cnt …

深入探索Redis:如何有效遍历海量数据集

深入探索Redis&#xff1a;如何有效遍历海量数据集 Redis作为一个高性能的键值存储数据库&#xff0c;广泛应用于各种场景&#xff0c;包括缓存、消息队列、排行榜等。随着数据量的增长&#xff0c;如何高效地遍历Redis中的海量数据成为了一个值得探讨的问题。在本篇博客中&am…

【机器学习300问】23、什么是主动学习?

一、带标签的数据很难获得 机器学习中&#xff0c;比如监督学习需要带有标签的训练样本才能得到模型&#xff0c;然而在以下几种场景中去获取带有标签的数据是很难的&#xff1a; 自动驾驶场景&#xff1a;对自动驾驶汽车收集的高清地图数据或实时摄像头数据进行标注&#xff…

机器学习复习(8)——逻辑回归

目录 逻辑函数&#xff08;Logistic Function&#xff09; 逻辑回归模型的假设函数 从逻辑回归模型转换到最大似然函数过程 最大似然函数方法 梯度下降 逻辑函数&#xff08;Logistic Function&#xff09; 首先&#xff0c;逻辑函数&#xff0c;也称为Sigmoid函数&#…

2.9 Binance_interface APP 现货交易-限单价平仓

Binance_interface APP 现货交易-限单价平仓 Github地址PyTed量化交易研究院 量化交易研究群(VX) py_ted目录 Binance_interface APP 现货交易-限单价平仓1. APP 现货交易-限单价平仓函数总览2. 模型实例化3. 同步 非堵塞 固定价格平仓&#xff08;卖出&#xff09;4. 同步 …

Cubase学习:音频转midi

大家好!我是诗书画唱!今天要分享的小技巧就是Cubase中的音频转midi的功能!希望对你有所帮助!以后我会在这个账号分享自己知道的很多小技巧!关注我!不迷路!大家也可以关注我后,在我的空间搜索关键词,找到各种对应的教程进行学习,非常的方便!而且自己的教程会尽可能纠…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Web组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Web组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Web组件 提供具有网页显示能力的Web组件&#xff0c;ohos.web.webview提供web控制能…

开发者福利,微软Xamarin不再收费

Build2016大会已经进行到第二天的主题演讲&#xff0c;微软在大会上宣布Xamarin对全部Visual Studio用户免费开放&#xff0c;而所有Visual Studio版本都会捆绑Xamarin这个跨平台开发工具。Xamarin免费是开发者的福利&#xff0c;因为原本Visual Studio就有免费的“社区版”&am…

爬虫练习——动态网页的爬取(股票和百度翻译)

动态网页也是字面意思&#xff1a;实时更新的那种 还有就是你在股票这个网站上&#xff0c;翻页。他的地址是不变的 是动态的加载&#xff0c;真正我不太清楚&#xff0c;只知道他是不变的。如果用静态网页的方法就不可行了。 静态网页的翻页&#xff0c;是网址是有规律的。 …

【国产MCU】-CH32V307-触摸按键检测(TKEY)

触摸按键检测(TKEY) 文章目录 触摸按键检测(TKEY)1、TKEY介绍2、TKEY使用实例触摸检测控制(TKEY)单元,借助ADC 模块的电压转换功能,通过将电容量转换为电压量进行采样,实现触摸按键检测功能。检测通道复用ADC 的16 个外部通道,通过ADC 模块的单次转换模式实现触摸按键…

人工智能时代的遥感技术

时相遥感影像变化检测是指对同一地理区域、不同时间获取的遥感影像进行自动变化发现、识别与 解释的遥感处理与分析技术。随着卫星遥感技术及人工智能理论方法的快速发展&#xff0c;基于多时相遥感影像数据驱 动和模型驱动的传统变化检测方法正朝着数据一模型一知识联合驱动的…

设计模式第五天|代理模式 7-小明买房子 装饰模式 8-咖啡加糖

目录 【设计模式专题之代理模式】7-小明买房子【设计模式专题装饰模式】8-咖啡加糖 【设计模式专题之代理模式】7-小明买房子 文章链接&#xff1a;卡码网设计模式 题目链接&#xff1a;7-小明买房子 这里注意在HomeAgent类里需要定义对象成员变量HomeBuyer&#xff0c;这里在实…

【MySQL】-12 MySQL索引(上篇MySQL索引类型前置-2-高性能的索引策略)

MySQL索引-高性能的索引策略 3 高性能的索引策略3.1 独立的列3.2 前缀索引和索引选择性3.3 多列索引3.4 选择合适的索引列顺序3.5 聚簇索引(Clustered Indexes)3.5.1 InnoDB和MyISAM的数据布局的比较3.5.2 按primary key的顺序插入行(InnoDB) 3.6 覆盖索引(Covering Indexes)3.…

Linux dump命令教程:如何安全快速备份你的文件系统(附实例详解和注意事项)

Linux dump命令介绍 dump命令在Linux中用于备份文件系统到某个存储设备。它备份的是整个文件系统&#xff0c;而不是单个文件。换句话说&#xff0c;它将所需的文件备份到磁带、磁盘或任何其他存储设备以进行安全存储。dump命令在Linux中只适用于ext2/ext3文件系统&#xff0c…

【计算几何】给定一组点的多边形面积

目录 一、说明二、有序顶点集三、无序顶点集3.1 凸多边形3.2 非凸多边形 四、结论 ​ 一、说明 计算多边形面积的方法有很多种。众所周知的多边形&#xff08;如三角形、矩形、正方形、梯形等&#xff09;的面积可以使用简单的数学公式计算。在这篇文章中&#xff0c;我将讨论…

Vulnhub靶机:hacksudo-search

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;hacksudo-search&#xff08;10.0.2.50&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://download.vulnhub.co…

寒假作业2024.2.6

1.现有无序序列数组为23,24,12,5,33,5347&#xff0c;请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用直接插入排序实现升序排序 函数4:请使用插入排序实现升序排序 #include <stdio.h> #include <stdl…

代码随想录|Day 15

Day 15 年三十 今天太忙了… 一、理论学习 二、刷题学习 104. 二叉树的最大深度 应该确实比以前有提升了 已经能写出这么精简的代码了 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeN…