throw和throws的区别和联系

突然发现今天诗兴大发,看来又得写点内容了。

throw和throws对于Java程序员而言它们真的不是很陌生。但对于我这样的选手而言一提到它们的区别和联系就蒙圈了...

为了以后不蒙圈,今天就研究一下吧~~

如果有不足的地方欢迎批评指正...

1)throws

对于throws关键字而言一般用于抛出编译时的异常,如果某个异常是编译是异常,那么这个异常就需要捕获(try{}catch{}finally{})

或者抛出(throws)。否者的话是无法通过编译的。

这里再简单讲讲二者的区别

对于try{}catch{}finally{}而言,相应的异常已经在程序里面捕获。相应的catch中也已经处理了相关的异常,不会再向上抛出。上层

调用者是不需要进行任何处理的。

对于throws而言,当前程序不会对异常进行任何处理,如果出现异常的话,仅仅抛出而不做处理,对应的处理需要上层来负责。对应的

上层调用者必须处理这个异常或者继续向上抛出对应的异常。

说白了以公司为例:

客户给开发提了一个bug,如果开发人员能够处理(try{}catch{}finally{}),就自己处理了,不会在告诉项目经

理。但是如果开发处理不了,开发就会找项目经理(开发的throws)如果项目经理能够处理,就搞定(try{}catch{}finally{}),如果

搞不定 就找总经理(项目经理的throws)反正最终为题会被处理的(不敢不处理啊,客户是上帝啊~~哈哈)

下面是一个throws的简单例子:

package com.yonyou.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * 测试类
 * @author 小浩
 * @创建日期 2015-3-2
 */

public class Test{
	public static void main(String[] args) throws IOException {
		  File file=new File("C:\text.txt");
		  FileInputStream fis=new FileInputStream(file);
		  byte []b=new byte[10];
		  while(fis.read(b)!=-1)
		  {
			  System.out.println(new String(b));
		  }
	}
}

  

2)throw

对于throw而言一般是用在抛出一个异常对象,使用的不是很多。具体的看下面的例子:

package com.yonyou.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 测试类
 * @author 小浩
 * @创建日期 2015-3-2
 */

public class Test{
	public static void main(String[] args) throws MyException{
		  File file=new File("C:\text.txt");
		  FileInputStream fis;
		 try {
		  fis = new FileInputStream(file);
		  byte []b=new byte[10];
		  while(fis.read(b)!=-1)
		  {
			  System.out.println(new String(b));
		  }
		} catch (IOException e) {
			//处理捕获的异常,并抛出一个异常对象
			throw new MyException("龙不吟,虎不啸");
		}
}
}

/**
 * 自定义异常
 * @author 小浩
 * @创建日期 2015-3-2
 */
class MyException extends Exception{

	private static final long serialVersionUID = 1L;

	public MyException(String info){
		super(info);
	}

}

 运行的结果为:

Exception in thread "main" com.yonyou.test.MyException: 龙不吟,虎不啸   //用户自定义的异常对象
    at com.yonyou.test.Test.main(Test.java:27)

好吧今天就先到这里吧~~ See You

时间: 2024-08-27 19:54:03

throw和throws的区别和联系的相关文章

Java中的throw和throws的区别

Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws用来声明方法可能会抛出某些异常 Java中的throw和throws的区别,布布扣,bubuko.com

JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别

JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间过得很快,转眼一个月就这样过去了,我们不多说,继续我们的JAVA之旅 一.异常的概述 异常算是程序中一个比较重要的环节了,我们首先来看一下异常的体系,我们举一个小例子,定义一个除法方法 //公共的 类 类名 public class HelloJJAVA { // 公共的 静态 无返回值 main方

java 19 - 7 throw和throws的区别

1 /* 2 throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. 3 4 throws和throw的区别(面试题) 5 throws 6 用在方法声明后面,跟的是异常类名 7 可以跟多个异常类名,用逗号隔开 8 表示抛出异常,由该方法的调用者来处理 9 throws表示出现异常的一种可能性,并不一定会发生这些异常 10 throw 11 用在方法体内,跟的是异常对象名 12 只能抛出一个异常对象名 13 表示抛出异常,由方法体内的语句处理 14 throw则

异常机制及throw与throws的区别

Java的异常处理: Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally.Java的在线帮     助中对这几个关键字是这样解释的: Throws: Lists the exceptions a method could throw. Throws:列出一个方法可抛出的异常.       Throw: Transfers control of the method to the exception handler. Throw:将方法的控制权

java异常处理的throw和throws的区别

1. 区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型. 2.分别介绍 throws:用于声明异常,例如,如果一个方法里面不想有任何的异常处理,则在没有任何代码进行异常处理的时候,必须对这个方法进行声明有可能产生的所有异常(其实就是,不想自己处理,那就交给别人吧,告诉别人我会出现什么异常,报自己的错,让别人处理去吧). 格式是:方法名(参数)throws 异常类1,异

throw和throws的区别

1.throw:(针对对象的做法)抛出一个异常,可以是系统定义的,也可以是自己定义的.下面举两个例子:抛出Java中的一个系统异常:public class One {public void yichang(){NumberFormatException e = new NumberFormatException();throw e;}public static void main(String[] args){One test = new One();try{test.yichang();}c

Java中throw和throws的区别

public Test() throws RepletException { try { System.out.println("Test this Project!") } catch (Exception e) { throw new Exception(e.toString()); } } throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型. 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内

throw与throws的区别

throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理. throw语句用在方法体内,表示抛出异常,由方法体内的语句处理. throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常. throw是具体向外抛异常的动作,所以它是抛出一个异常实例. throws说明你有那个可能,倾向. throw的话,那就是你把那个倾向变成真实的了. 同时:1.throws出现在方法函数头:而throw出现在函数体.2.throws表示出现异常的一种可能性,并不一定会发生

throw和throws的区别?

throw: 表示方法内抛出某种异常对象 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错 执行到 throw 语句则后面的语句块不再执行 throws: 方法的定义上使用 throws 表示这个方法可能抛出某种异常 需要由方法的调用者进行异常处理 package constxiong.interview; import java.io.IOException;