简单说throw和throws的区别
1. 区别
throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。
2.分别介绍
throws:用于声明异常,例如,如果一个方法里面不想有任何的异常处理,则在没有任何代码进行异常处理的时候,必须对这个方法进行声明有可能产生的所有异常(其实就是,不想自己处理,那就交给别人吧,告诉别人我会出现什么异常,报自己的错,让别人处理去吧)。
格式是:方法名(参数)throws 异常类1,异常类2,.....
1 class Math{
2 public int div(int i,int j) throws Exception{
3 int t=i/j;
4 return t;
5 }
6 }
7
8 public class ThrowsDemo {
9 public static void main(String args[]) throws Exception{
10 Math m=new Math();
11 System.out.println("出发操作:"+m.div(10,2));
12 }
13 }
throw:就是自己进行异常处理,处理的时候有两种方式,要么自己捕获异常(也就是try catch进行捕捉),要么声明抛出一个异常(就是throws 异常~~)。
注意:
throw一旦进入被执行,程序立即会转入异常处理阶段,后面的语句就不再执行,而且所在的方法不再返回有意义的值!
1 public class TestThrow
2 {
3 public static void main(String[] args)
4 {
5 try
6 {
7 //调用带throws声明的方法,必须显式捕获该异常
8 //否则,必须在main方法中再次声明抛出
9 throwChecked(-3);
10 }
11 catch (Exception e)
12 {
13 System.out.println(e.getMessage());
14 }
15 //调用抛出Runtime异常的方法既可以显式捕获该异常,
16 //也可不理会该异常
17 throwRuntime(3);
18 }
19 public static void throwChecked(int a)throws Exception
20 {
21 if (a > 0)
22 {
23 //自行抛出Exception异常
24 //该代码必须处于try块里,或处于带throws声明的方法中
25 throw new Exception("a的值大于0,不符合要求");
26 }
27 }
28 public static void throwRuntime(int a)
29 {
30 if (a > 0)
31 {
32 //自行抛出RuntimeException异常,既可以显式捕获该异常
33 //也可完全不理会该异常,把该异常交给该方法调用者处理
34 throw new RuntimeException("a的值大于0,不符合要求");
35 }
36 }
37 }
简单说throw和throws的区别的更多相关文章
- JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别
JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间 ...
- java异常和throw和throws的区别
之前在编程中编译完成后,运行时,会遇见一些常见的错误,如NullPointerException,ArrayIndexOutOfBoundsException等等 在今天重新回顾学习了java异常,总 ...
- java中throw和throws的区别
throw和throws的区别: throws 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开 表示抛出异常,由该方法的调用者来处理 throws表示出现异常的一种可能性,并不一定会 ...
- Java中的throw和throws的区别
Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...
- java基础之自定义异常类及throw和throws的区别
一.异常的架构: Throwable类:所以异常类都是Throwable的子类,它派生两个子类 Error和Exception. Error类:表示仅靠程序本身无法恢复的的严重错误,比如内存溢出,虚拟 ...
- Java 创建用户异常类、将异常一直向上抛、 throw和throws的区别
如果java提供的系统异常类型不能满足程序设计的需求,那么可以设计自己的异常类型. 从java异常类的结构层次可以看出,java类型的公共父类为Throwable.在程序运行中可能出现俩种问题:一种是 ...
- 异常机制及throw与throws的区别(转)
异常机制及throw与throws的区别 分类: Java2008-11-14 16:08 9672人阅读 评论(5) 收藏 举报 exceptionstringjavafunclass编译器 Jav ...
- Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
- throw和throws的区别和联系
突然发现今天诗兴大发,看来又得写点内容了. throw和throws对于Java程序员而言它们真的不是很陌生.但对于我这样的选手而言一提到它们的区别和联系就蒙圈了... 为了以后不蒙圈,今天就研究一下 ...
随机推荐
- Ubuntu关闭进入screensaver模式
/********************************************************************************* * Ubuntu关闭进入scree ...
- 百练7619-合影效果-2015正式D题-简单排序&输出格式
D:合影效果 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念.如果他们站成一排,男生全部在左(从拍照者的 ...
- XXS level5
(1)用第四关的方法尝试,发现不行,查看页面源代码,发现on中间有了下划线 (2)查看PHP源代码 <?php ini_set("display_errors", 0); $ ...
- 快速排序 C语言实现
转载于> http://blog.chinaunix.net/uid-26404477-id-3329885.html 总的关键字比较次数:O(nlgn) 尽管快速排序的最坏时间为O(n2),但 ...
- AC自动机自我理解和模板
给出长度为m的文本 查询 n个单词出现的次数 用kmp 复杂度 n*m*(单词平均长度) 用字典树 复杂度 m*每次字典树遍历的平均深度) AC自动机 复杂度 m (思路可以理解为kmp+字典树 ) ...
- set 基础知识
#include <iostream> #include <set> using namespace std; int main() { set<int> s; s ...
- python基础-函数基本特性和用法
函数: 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值 ...
- Javascript中的 “&” 和 “|” 详解
转自:https://www.jb51.net/article/104394.htm 一.前言: 在文章开始之前,先出几个题目给大家看看: var num1 = 1 & 0; console. ...
- python3 sort
#https://docs.python.org/3.5/howto/sorting.html?highlight=sort #In Python 3.2, the functools.cmp_to_ ...
- <jsp:include>动作元素,附:最易出错的一点
先定义一个date.jsp,再定义一个main.jsp.用<jsp:include plage = "相对url地址" flush = "true"> ...