博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java异常throws与throw的区别
阅读量:6120 次
发布时间:2019-06-21

本文共 1903 字,大约阅读时间需要 6 分钟。

throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。 当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。谁调用谁处理; 抛出异常throws:
     在方法上加一个声明,声明调用这个方法可能存在的异常(或风险),将异常 交给调用者处理,
     当然调用者也可以不处理,继续往上抛,相当于踢皮球,推卸   责任;
如下面例子所示:
class Shoot {    static void pop() throws NegativeArraySizeException {        // 定义方法并抛出NegativeArraySizeException异常        int[] arr = new int[-3];// 创建数组    }    public static void main(String[] args) {
// 主方法 try { pop(); // 调用pop()方法 } catch (NegativeArraySizeException e) { System.out.println("pop()方法抛出的异常");// 输出异常信息 } }}
throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。 通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常; 如果要捕捉throw抛出的异常,则必须使用try—catch语句。举例如下:
class MyException extends Exception { // 创建自定义异常类    String message; // 定义String类型变量    public MyException(String ErrorMessagr) { // 父类方法        message = ErrorMessagr;    }    public String getMessage() { // 覆盖getMessage()方法        return message;    }}class Captor { // 创建类    static int quotient(int x, int y) throws MyException {
// 定义方法抛出异常 if (y < 0) { // 判断参数是否小于0 throw new MyException("除数不能是负数");// 异常信息 } return x / y;// 返回值 } public static void main(String args[]) { // 主方法 try { // try语句包含可能发生异常的语句 int result = quotient(3, -1);// 调用方法quotient() } catch (MyException e) { // 处理自定义异常 System.out.println(e.getMessage()); // 输出异常信息 } catch (ArithmeticException e) { // 处理ArithmeticException异常 System.out.println("除数不能为0");// 输出提示信息 } catch (Exception e) { // 处理其他异常 System.out.println("程序发生了其他的异常"); // 输出提示信息 } }}
 
自定义异常:
①:如何自定义异常?答:继承已有的异常类;
②:如何抛出 自定义异常?答:
用throw关键字抛出自定义异常对象;
 
throw用于抛出自定义异常!
 
注意是throw不是throws!!!
两者的区别:
throws后面跟的是一个异常类的类型;
throw后面跟的是一个异常类的对象;

转载于:https://www.cnblogs.com/YLQBL/p/6783125.html

你可能感兴趣的文章
JSONP实现跨域
查看>>
Python基础班---第一部分(基础)---Python基础知识---计算机组成原理
查看>>
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
Jenkins持续集成环境部署
查看>>