热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学习Java异常处理之throws之抛出并捕获异常(9)

任务描述本关任务:在main方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减1生成一个整数值,输出第一个字符串长度是

任务描述

本关任务:在 main 方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减 1 生成一个整数值,输出第一个字符串长度是生成整数值的多少倍,如果有异常的话,抛出异常。

相关知识

throws 关键字

在之前的实训中,我们学习了如何处理捕获异常,但是有时候我们想偷个懒,不自己处理这些异常,可不可以呢?

答案是可以的!

我们可以将自己不想处理的异常交给别人来处理,那么怎么实现呢?

很简单,我们只需要用 throws 关键字抛出该异常即可。

例如:

编写以上代码我们发现 IDE 报错了,提示我们这里有异常要处理,但是如果我们不想处理,就可以这样:

可以发现 test 方法内部没有报错了,但是调用 test 方法的地方报错了。是什么原因呢?

抛出异常,就像我们平常所说的“甩锅”,总有一个人要背锅,在 Java 中也一样异常最终总是要被处理或者被捕获的,所以我们如果在方法的括号后面抛出一个异常,那么该方法的调用者是必须要捕获这个异常或者将这个异常继续抛出的。

所以上面的错误就会有两种解决办法。

第一种:将异常捕获并处理:

第二种:把“锅”甩给 Java 虚拟机处理,自己不处理:

在 main 方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减 1 生成一个整数值,输出第一个字符串长度是生成整数值的多少倍,如果有异常的话,抛出异常。

import java.util.Scanner;public class Exc1Test {// 请在Begin-End间编写代码/********** Begin **********/// 第一步:创建任意方法并抛出异常public static void test() throws Exception{// 第二步:接收给定的两个字符串Scanner input = new Scanner(System.in);String str1 = input.next();String str2 = input.next();// 第三步:把第二个字符串的长度减1,得到一个整数值int a = str2.length() - 1;// 第四步:输出第一个字符串长度是整数值的多少倍int s = str1.length() / a;System.out.println(s);}public static void main(String[] args) {// 第五步:调用创建的方法,并捕获异常,输出"除数不能为0"try {test();} catch (Exception e) {System.out.println("除数不能为0");}}/********** End **********/}

 


推荐阅读
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ... [详细]
  • 本文深入探讨了动态赋值的概念及其在编程实践中的应用,特别是通过Java代码示例来展示如何利用循环结构动态地为数组分配值。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文详细探讨了在Java编程语言中,构造函数、静态代码块和构造代码块的执行顺序。首先明确了静态代码块、构造代码块以及构造函数方法体的执行优先级,随后深入分析了构造函数体执行前的具体步骤,包括父类构造器的调用、非静态变量的初始化等。 ... [详细]
  • 本文详细介绍了如何在Spring框架中设置事件发布器、定义事件监听器及响应事件的具体步骤。通过实现ApplicationEventPublisherAware接口来创建事件发布器,利用ApplicationEvent类定义自定义事件,并通过ApplicationListener接口来处理这些事件。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
author-avatar
zjy396999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有