throw 和 throws 的区别?

throw 和 throws 的区别?throw和throws的区别?throw:表示方法内抛出某种异常对象 如果异常对象是非RuntimeException则需要在方法申明时加上该异常的抛出即需要加上throws语句或者在方法体内trycatch处理该异常,否则编译报错 执行到throw语句则后面的语句块不再执行throws:方法的定义上使用throws表示这个方法可能抛出某种…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

throw 和 throws 的区别?

throw:

  • 表示方法内抛出某种异常对象
  • 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错
  • 执行到 throw 语句则后面的语句块不再执行

throws:

  • 方法的定义上使用 throws 表示这个方法可能抛出某种异常
  • 需要由方法的调用者进行异常处理
package constxiong.interview;

import java.io.IOException;

public class TestThrowsThrow {

	public static void main(String[] args) {
		testThrows();
		
		Integer i = null;
		testThrow(i);
		
		String filePath = null;
		try {
			testThrow(filePath);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 测试 throws 关键字
	 * @throws NullPointerException
	 */
	public static void testThrows() throws NullPointerException {
		Integer i = null;
		System.out.println(i + 1);
	}
	
	/**
	 * 测试 throw 关键字抛出 运行时异常
	 * @param i
	 */
	public static void testThrow(Integer i) {
		if (i == null) {
			throw new NullPointerException();//运行时异常不需要在方法上申明
		}
	}
	
	/**
	 * 测试 throw 关键字抛出 非运行时异常,需要方法体需要加 throws 异常抛出申明
	 * @param i
	 */
	public static void testThrow(String filePath) throws IOException {
		if (filePath == null) {
			throw new IOException();//运行时异常不需要在方法上申明
		}
	}
}

Jetbrains全家桶1年46,售后保障稳定

 


【Java面试题与答案】整理推荐

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206577.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结

    HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结最近写网页经常需要将div在屏幕中居中显示,遂记录下几个常用的方法,都比较简单。水平居中直接加上<center>标签即可,或者设置margin:auto;当然也可以用下面的方法下面说两种在屏幕正中(水平居中+垂直居中)的方法放上示范的html代码:<body><divclass="main">

    2022年5月6日
    41
  • 线性代数代码实现(六)矩阵除法(C++)

    线性代数代码实现(六)矩阵除法(C++)前言:距离上一篇文章发布已经五天过去了,在这里先给一直等待的伙伴们说声抱歉,因为博主最近的事情很多,只好暂时停更,望大家理解!上一篇文章中,我们介绍了求解逆矩阵的方法,我提到,可逆矩阵可以定义除法。这一篇文章中,讨论一下怎样实现矩阵除法!一、线性代数知识回顾:事实上,矩阵没有“除法”这一概念,我们的“除法”实际上是用以下方式来定义的:设矩阵,,,其中为可逆矩阵,满足以下等式:变换得:如果我们换一种写法,就成了:这样就定义了矩阵除法,我把它称…

    2022年6月18日
    39
  • 2022年计算机考研过线就能上的学校[通俗易懂]

    2022年计算机考研过线就能上的学校[通俗易懂]部分考研同学本科是双非计算机类专业,基础能力一般,编程能力较弱,那么对于这类考生,主要还是以求稳为主,选择一个分数略低,复试较简单的学校,上岸几率就会加大。那么2022年计算机考研过线上岸率高的院校有哪些呢?

    2022年6月6日
    340
  • consolewriteline用法_regular script

    consolewriteline用法_regular script严格模式ES6的模块自动采用严格模式,不管你有没有在模块头部加上"usestrict";。严格模式的限制如下变量必须声明后再使用函数的参数不能有同名属性,否则报错不能

    2022年8月7日
    6
  • 解决SqlTransaction用尽的问题(SQL处理超时)

    解决SqlTransaction用尽的问题(SQL处理超时)有时候程序处理的数据量比较小时,四平八稳,一切安然无恙,但数据量一大,原先潜伏的问题就暴露无遗了。原访问数据库的代码为: 1SqlConnection conn = new SqlConnection(strConn); 2conn.Open(); 3SqlTransaction trans = conn.BeginTransaction(); 4try 5{ 6    CEngine.Exe…

    2022年5月18日
    37
  • 艾伟:memcached全面剖析–2.理解memcached的内存存储

    艾伟:memcached全面剖析–2.理解memcached的内存存储

    2021年8月13日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号