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://xiahunao.cn/news/2778624.html

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

相关文章

python接口自动化---接口测试报告模板(详解)

简介 接口测试报告是软件测试过程中非常重要的一部分,通过接口测试报告我们可以了解系统在接口层面上的稳定性和可靠性。下面是一个简单的接口测试报告模板: 测试概述 在这个部分中,您需要简要阐述接口测试的目的和范围。测试环境 在这个部…

网络的基本概念和socket编程

网络的基本概念 1.协议1.1 协议的基本概念1.2 常见的协议 2.分层模型2.1网络七层OSI 7层模型:物数网传会表应(口诀)2.2TCP/IP模型2.3数据通信的过程2.4网络的设计模式2.5以太网帧的格式 3.SOCKET编程3.1网络字节序3.2 相关结构体和函数3.3 代码实现 1.协议 1.1 协议…

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由 哈喽小伙伴们好,我是Stark-C~ 关注我的小伙伴都知道,我之前有分享过我的创作过程与工具,其中介绍了我个人其实一直都是使用Markdown的编辑器来进行图文创作的。 我…

【数学建模】【2024年】【第40届】【MCM/ICM】【B题 搜寻潜水器】【解题思路】

一、题目 (一)赛题原文 2024 MCM Problem A: Resource Availability and Sex Ratios Maritime Cruises Mini-Submarines (MCMS), a company based in Greece, builds submersibles capable of carrying humans to the deepest parts of the ocean. A …

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

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

《剑指 Offer》专项突破版 - 面试题 38、39 和 40 : 通过三道面试题详解单调栈(C++ 实现)

目录 面试题 38 : 每日温度 面试题 39 : 直方图最大矩形面积 方法一、暴力求解 方法二、递归求解 方法三、单调栈法 面试题 40 : 矩阵中的最大矩形 面试题 38 : 每日温度 题目: 输入一个数组,它的每个数字是某天的温度。请计算每天需要等几天才会…

AJAX——认识URL

1 什么是URL? 统一资源定位符(英语:Uniform Resource Locator,缩写:URL,或称统一资源定位器、定位地址、URL地址)俗称网页地址,简称网址,是因特网上标准的资源的地址&…

生于越南,“开源改变了我的人生!”

注:本文精选自《新程序员 007:大模型时代的开发者》,欢迎点击订购。 作者 | 王启隆 责编 | 唐小引 出品 | 《新程序员》编辑部 随着人工智能浪潮的席卷,开源不再仅仅是计算机领域的一个话题,而是成为推动技术创新…

【动态规划】【回文】【字符串】1278分割回文串 III

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 LeetCode1278分割回文串 III 给你一个由小写字母组成的字符串 s,和一个整数 k。 请你按下面的要求分割字符串: 首先,你可以将 s 中的部分字符修改…

【Linux系统 04】OpenEuler配置

目录 一、镜像文件下载 二、配置静态IP 三、启动SSH连接 四、远程免密登录 五、安装常用软件 一、镜像文件下载 官方下载地址:openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 选择一个版本,lopenEuler通常有两种版本: 创新版&…

Java 内存区域介绍

(1)程序计数器 程序计数器主要有两个作用: 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。 在多线程的情况下,程序计数器用于记录…

C++笔记之regex(正则表达式)

C++笔记之regex(正则表达式) ——2024-02-10 ——《C++标准库》(第2版,侯捷译) Page 717 code review! 文章目录 C++笔记之regex(正则表达式)例1:使用正则表达式进行搜索(`std::regex_search`)例2:使用正则表达式进行全文匹配(`std::regex_match`)例3:使用正则表达式…

Linux操作系统基础(八):Linux的vi/vim编辑器

文章目录 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 二、打开文件 三、VIM编辑器的三种模式(重点) 四、命令模式相关命令 五、底行模式相关命令 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 vi是visual interface的简称, 是Linux中最经典的文本编辑器 vi的核心设计思想…

【九章斩题录】Leetcode:判定是否互为字符重排(C/C++)

面试题 01.02. 判定是否互为字符重排 ✅ 模板:C class Solution { public:bool CheckPermutation(string s1, string s2) {} }; 「 法一 」排序 💡 思路:看到题目中说 "重新排列后能否变成另一个字符串",等等……重新…

读千脑智能笔记10_人类智能存在的风险

1. 人类智能存在的风险 1.1. “末日时钟” 1.1.1. 核战争引发的大火列为地球毁灭的主要原因 1.1.2. 气候变化列为人类自我毁灭的第二大潜在原因 1.2. 除非我们刻意加入自私的驱动力、动机或情感,否则智能机器并不会威胁到人类的生存 1.2.1. 人类在不远的将来会…

系统架构21 - 统一建模语言UML(下)

UML图 UML中的图分类作用 视图用例视图逻辑视图进程视图实现视图部署视图 UML中的图 “图”是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以…

【经验】PIC16F877A串口发送字符串问题

PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下: 1、注意232串口芯片供电电压,有5V和3.3V的 2、注意TXD、RXD接线,单片机的TXD接232芯片的R2O…

Linux中孤儿/僵尸进程/wait/waitpid函数

孤儿进程: 概念:若子进程的父进程已经死掉,而子进程还存活着,这个进程就成了孤儿进程。 为了保证每个进程都有一个父进程,孤儿进程会被init进程领养,init进程成为了孤儿进程的养父进程,当孤儿…

【计算机网络】时延,丢包,吞吐量(分组交换网络

时延 结点处理时延(nodal processing delay) dproc 排队时延(queuing delay) dqueue 传输时延(transmission delay) dtrans 路由器将分组推出所需要的时间,是分组长度和链路传输速率的函数 传播时…

【开源】JAVA+Vue.js实现计算机机房作业管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课时管理模块2.4 学生作业模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程表3.2.2 课时表3.2.3 学生作业表 四、系统展示五、核心代码5.1 查询课程数据5.2 新增课时5.3 提交作…