Java throws 使用

28 篇文章 2 订阅
订阅专栏

在开发中,如果去调用别人写的方法时,是否能知道别人写的方法是否会发生异常?这是很难判断的。针对这种情况,Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。

如下面代码


package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
       int result = divide(4,2);
       System.out.println(result);
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}
这时候 编译器上会有错误提示  Unhandled exception type Exception

所以需要对调用divide()方法进行try...catch处理


package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) {
        
      try {
         int    result = divide(4,2);
          System.out.println(result);
       } catch (Exception e) {
        
          e.printStackTrace();
       }
      
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}

debug 运行程序

当 调用divide()方法时,如果不知道如何处理声明抛出的异常,也可以使用throws 关键字继续抛异常,这样程序也能编译运行。但是注意的是,程序一旦发生异常,如果没有被处理,程序就会非正常终止。如下:

package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) throws Exception {
        
          int    result = divide(4,0);
          System.out.println(result);
      
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}

  

debug运行程序

 

 



Java 运行时异常与编译时异常

1. 编译时异常

   在Java 中,Exception类中除了RuntimeException 类及其子类外都是编译时异常。编译时异常的特点是Java编译器会对其进行检查,如果出现异常就必须对异常进行处理,否则程序无法编译通过。

  处理方法

   使用try... catch 语句对异常进行捕获

   使用throws 关键字声明抛出异常,调用者对其进行处理

2.运行时异常

  RuntimeException 类及其子类运行异常。运行时异常的特点是Java编译器不会对其进行检查。也就是说,当程序中出现这类异常时,即使没有使用try... catch 语句捕获使用throws关键字声明抛出。程序也能编译通过。运行时异常一般是程序中的逻辑错误引起的,在程序运行时无法修复。例如 数据取值越界。

三 自定义异常

  JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况。例如divide()方法中不允许被除数为负数。为类解决这个问题,在Java中允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。例子如下


package www.kangxg.jdbc;

public class DivideDivideByMinusException  extends Exception {
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public DivideDivideByMinusException(){
        super();
    }
    
    public DivideDivideByMinusException(String message)
    {
        super(message);
    }
}

 

package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) throws Exception {
        
        try {
             int    result = divide(4,-2);
              System.out.println(result);
         } catch (DivideDivideByMinusException e) {
            
             System.out.println(e.getMessage());
         }
      
    }
    
    public static int divide(int x,int y) throws DivideDivideByMinusException
    {
        if(y<0)
        {
            throw new DivideDivideByMinusException("被除数是负数");
        }
        int result = x/y;
        return result;
    }

}

  

Debug 运行


 


java throws的用法
weixin_37841024的博客
08-22 319
虽然不受检异常通常不要求在方法签名中使用 `throws` 关键字,但是如果需要明确告知调用方可能会抛出不受检异常,也可以在方法签名中使用 `throws` 关键字。在 Java 中,如果一个方法在其声明中使用 `throws` 关键字声明了可能会抛出异常,调用该方法时并不强制要求立即在调用处使用 `try-catch` 块来捕获这些异常。2. **继续向上抛出异常**:如果调用的方法使用 `throws` 声明了相同的异常,可以继续将异常向上抛出,直到某个调用者处捕获异常或者达到程序的顶层。
Javathrows用法总结
05-28
Java纠错提醒错误一般需要throws来提示检查
java throws的作用_javathrows实例用法详解
weixin_39710288的博客
02-16 2331
在程序出现异常时,会有一个抛出异常的throw出现,这里我们要跟今天所讲的throws区分开。throws的作用是声明抛出,在名称上也跟throw有所不同。下面我们就throws对策概念、语法、实例带来讲解,帮助大家找到声明抛出异常的方法,具体方法如下。1.概念如果方法声明的是Exception类型的异常或者是Checked Exception异常,要求方法的调用处必须做处理。(1)继续使用thr...
java 异常处理的关键字_Java异常处理与throws关键字用法分析
weixin_30209891的博客
02-16 172
本文实例讲述了Java异常处理与throws关键字用法。分享给大家供大家参考,具体如下:Java异常处理认识异常:1.异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,则可能导致程序的中断执行,造成不必要的损失。2.异常范例空指针异常Exc e=null;System.out.println(e.i);除0异常int a=10;int b=0;System.out.println(a/...
javathrows关键字用法
热门推荐
biao2488890051的博客
11-23 1万+
定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。 throws关键字格式: public 返回值类型 方法名称(参数列表,,,)throws 异常类{};  假设定义一个除法,对于除法操作可能出现异常,可能不会。所以对于这种方法最好将它使用throws关键字声明,一旦出现异常, 则应该交给调用处处理。 cl...
java throws用法_java抛出异常thorw和throws的用法
weixin_40003046的博客
02-20 453
java中异常被当做一个对象来看待。并且所有系统定义的编译和运行异常都由系统自动抛出,成为标准异常。但一般情况下java强烈的要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续运行。1.用户程序自定义的异常和应用程序特定的异常,必须借助于throwthrows语句来定义抛出异常。1.1throw是语句抛出一个异常;语法:throw(异常对象); eg:throw e;位置:在...
22.javathrows声明抛出异常序列.zip
最新发布
06-15
22.javathrows声明抛出异常序列.zip22.javathrows声明抛出异常序列.zip22.javathrows声明抛出异常序列.zip22.javathrows声明抛出异常序列.zip22.javathrows声明抛出异常序列.zip22.javathrows声明抛出异常序列.zip22...
Java throwthrows使用区别分析
08-19
Java编程语言中,`throw`和`throws`都是用于处理异常的重要关键字,但它们的用法和功能有所不同。理解这两个关键字的区别对于编健壮的Java程序至关重要。 首先,我们来了解一下异常的基本概念。在Java中,异常...
java处理异常的机制关键字throwthrows使用解析
08-25
Java处理异常的机制关键字throwthrows使用解析 Java处理异常的机制关键字throwthrows是Java语言中两个非常重要的机制关键字,它们都是用来处理异常的,但它们之间存在着明显的区别。下面我们将通过示例代码详细...
简单了解Java关键字throwthrows的区别
08-25
Java关键字throwthrows的区别 Java是一种面向对象的编程语言,具有强大且灵活的特性。其中,throwthrows是两个重要的关键字,经常被用来处理异常情况。然而,许多初学者却对这两个关键字的区别感到困惑。下面,...
Java throws 不_是否可以在Java中不使用throws Exception”而引发异常?
weixin_33917277的博客
02-16 1338
Java中发生异常时,程序异常终止,并且导致异常的行之后的代码也不会执行。要解决此问题,您需要将导致异常的代码包装在try catch ot中,然后使用throws子句抛出异常。如果使用throws子句引发异常,它将被p [推迟到调用行,即示例importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Sca...
Java知多少(50)Java throws子句
weixin_34399060的博客
05-02 111
如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常。做到这点你可以在方法声明中包含一个throws子句。一个 throws 子句列举了一个方法可能抛出的所有异常类型。这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的。一个方法可以抛出的所有其他类型的异常必须在throws子句中声明。如果不这样做,将会导致编译...
Javathrows
路~可以走过
03-17 652
抛出异常: throw:手动抛出异常 声明异常: thorws:声明方法可能要抛出的各种异常 package cn.zzx.insert; public class LostMessage { void w() throws Normal{ throw new Normal(); } void dispose() throws Exception{ throw new Imp...
java----throws
mfnyq的博客
04-11 1730
1. throws 关键字 throws关键字主要用于方法声明上,指的是当方法之中出现异常后交由被调用处处理。 class MyMath{ //由于存在throws,那么就表示此方法里面产生的异常交给被调用处处理 public static int div(int x, int y) throws Exception{ return x/y; } } public class TestDemo{ public st
Java中的throwthrows用法
Sandwich ice cream
10-20 3518
1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。如下面例子所示: public class Shoot { // 创建类 static void pop() throws NegativeArraySizeException { //定义方法并抛出NegativeArraySiz
java throws用法_Java throws 使用
weixin_39631301的博客
02-12 151
在开发中,如果去调用别人方法时,是否能知道别人方法是否会发生异常?这是很难判断的。针对这种情况,Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。如下面代码package www.kangxg.jdbc;public class Example {public s...
Javathrows和throw的用法
lbllol365的博客
12-16 2463
public class Test_Exception { public static void main(String[] args){ int a = 1; int b = 1; add(a,b); } public static void add(int a,int b) throws RuntimeException{ if (a == b) throw ne
java 方法 throws_Java之异常的处理(throws)
weixin_42318708的博客
02-16 1518
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** 异常处理的方式二:throws + 异常类型** 1. "throws + 异常类型"方法的声明处。指明此方法执行时,可能会抛出的异常类型。* 一旦当...
java throws
06-01
Java 中,throws 关键字用于声明一个方法可能会抛出的异常类型。当一个方法可能会抛出一个已检查异常时,需要使用 throws 声明来告诉调用者该异常可能会发生,并且需要通过 try-catch 块或者继续使用 throws 将该异常传递给上一级调用方法来处理。 例如,下面的代码中的方法可能会抛出 IOException 异常: ```java public void readFile() throws IOException { // code to read from a file } ``` 调用该方法的代码也需要通过 try-catch 块或者继续使用 throws 将该异常传递给上一级调用方法来处理: ```java try { readFile(); } catch (IOException e) { // handle the exception } ``` 或者: ```java public void handleFile() throws IOException { readFile(); } // call handleFile() method try { handleFile(); } catch (IOException e) { // handle the exception } ```
写文章

热门文章

  • Element-UI 使用el-row 分栏布局 89872
  • Java throws 使用 76925
  • Element-UI 使用心得之el-card 76315
  • intellij idea Swing GUI 69406
  • Element-UI 使用el-row 高度设置 53085

分类专栏

  • vue 3篇
  • 使用实例 16篇
  • 配置方法 7篇
  • 使用命令 6篇
  • 配置说明 3篇
  • 错误处理 32篇
  • 安装设置 13篇
  • 工具方法 2篇
  • SpringBoot 58篇
  • Alamofire 1篇
  • Redis 6篇
  • 启动页 1篇
  • 学习资源 2篇
  • 富文本 1篇
  • Element-UI 6篇
  • Vue-Echarts 1篇
  • Webgic 2篇
  • sql 2篇
  • 备忘 3篇
  • 记忆细点 3篇
  • flyway 2篇
  • 软件使用 3篇
  • gitbit 3篇
  • 负载均衡 1篇
  • Nginx 3篇
  • tess4j 5篇
  • tesseract 3篇
  • 爬虫 3篇
  • 域名 1篇
  • HtmlCleaner 1篇
  • Xpath语法 1篇
  • Xpath
  • log4j 4篇
  • Tomcat 5篇
  • SpringBootClient 1篇
  • RabbitMQ 4篇
  • cron表达式 1篇
  • Spring Batch 2篇
  • Validation 1篇
  • Validation校验 1篇
  • Quartz 1篇
  • Swagger 1篇
  • Docker 3篇
  • filezilla 2篇
  • JDK 1篇
  • https://www.filezilla.cn/download/c
  • okHttp 1篇
  • Glide 1篇
  • 内容提供者 1篇
  • UITableViewCell 2篇
  • iOS 静态库
  • 日志文件读取 1篇
  • iOS 日志 1篇
  • iOS 网速
  • iOS 网速观察 1篇
  • Xcode git
  • socket 2篇
  • iOS Webview 1篇
  • Python 5篇
  • Rea c
  • React Native 28篇
  • java 28篇
  • 远程桌面 1篇
  • 工具 1篇
  • ReactiveCocoa 1篇
  • PromiseKit 1篇
  • 处理器
  • 宏定义 1篇
  • KIF 1篇
  • 屏幕录制 1篇
  • Eclipse C 现代编程 3篇
  • Tomcat 使用 1篇
  • struts2 1篇
  • other
  • idea 5篇
  • swing 1篇
  • maven配置 1篇
  • iOS高性能编程 2篇
  • storyboard 1篇
  • js 7篇
  • iOS屏幕切换 1篇
  • Android 23篇
  • C 12篇
  • iOS 24篇
  • Web
  • reader 1篇
  • swift 7篇
  • iOS 播放器 1篇
  • git 2篇
  • Xcode 5篇
  • opencv 2篇
  • j en
  • Jenkins 1篇
  • cocoaspod 1篇
  • Runtime 1篇
  • Spring 8篇
  • OC-Swift 1篇
  • Kafka 1篇
  • 终极算法 1篇
  • Cookie 1篇
  • MyBatis 9篇
  • VR 1篇
  • 测试
  • Github 1篇
  • MySql 5篇
  • 算法 2篇
  • SpringMyBatis 4篇
  • H5 1篇
  • CSS
  • 开发模版 2篇
  • 程序人生 1篇
  • SSM 3篇
  • JSP 2篇
  • JavaFX 1篇
  • SpringMVC 3篇
  • excel 1篇
  • IOE
  • TRIZ 1篇
  • SWOT 2篇
  • 逆文档频率法
  • 标引 1篇
  • 千年大计
  • cocoapods 1篇
  • SpringJSON 4篇
  • 机器学习 1篇
  • 大数据
  • tensorflow 1篇
  • 学习 3篇
  • HTTP
  • Arduino 5篇
  • yarn 1篇
  • bolg

最新评论

  • Java throws 使用

    SGL23187: 资瓷4楼--y是除数

  • Java throws 使用

    zqyzqy233: 资瓷17楼--y是除数

  • Vue.js is detected on this page 问题处理

    wmsxyb: 第二步骤和第三步骤没办法哎呀,感觉是我没看到,有大佬知道怎么解决吗

  • Vue.js is detected on this page 问题处理

    2301_79304942: 我也是Mac系统,还是弄不了

  • 【动态规划】牛顿爬楼梯问题

    Mr.shuo: cool 学习了很有帮助,然后推演进化一下这个问题,现在当前台阶问题限制在每次最多2个台阶,当每次最多允许跨3个台阶时候 那么如何推演我思考的 应该就变成了f n=f n-1 + f n-2 +f n-3 。 这里的相加项取决于最大每次限制数 3 or 2 or4 5 6 也是同理猜测,这样一来是否就把这一类问题解决了呀

大家在看

  • stl-map
  • 猜数游戏(AutoHotKey)
  • Python 字符串操作基础应用 525
  • 外包干了2个月,技术退步明显了... 415
  • Hbas 三层索引 1

最新文章

  • Vue.js开发中面向对象开发总结
  • 服务器Nginx安装实战
  • Vue.js 生产打包上线实战
2023年3篇
2022年3篇
2021年8篇
2020年114篇
2018年142篇
2017年96篇
2016年27篇
2015年1篇

目录

目录

分类专栏

目录

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家陕西户内玻璃钢雕塑销售厂家湖南玻璃钢浮雕不锈钢镂空雕塑商场网红美陈装饰圆球玻璃钢雕塑宫灯南昌大型玻璃钢雕塑供应商江宁美陈商场布置西藏玻璃钢动物马雕塑广东商场美陈供货商普洱玻璃钢花盆厂家镇江玻璃钢仿铜雕塑价格玻璃钢雕塑模型厂 眉山成都玻璃钢雕塑施工方案好用的景观玻璃钢雕塑深圳超市商场美陈价钱永州玻璃钢雕塑厂家深圳主题商场美陈市场标牌玻璃钢卡通雕塑公司西安玻璃钢雕塑产品厂家山西玻璃钢雕塑专业定制厂家天津商场主题创意商业美陈思路泸州玻璃钢商场美陈阜新商场美陈吉林定制玻璃钢雕塑批发玻璃钢艺术雕塑专卖店保定玻璃钢西方人物雕塑广场玻璃钢景观雕塑玻璃钢抽象石头雕塑玻璃钢龙虾雕塑定做北京特色商场美陈售价崇明玻璃钢向日葵雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化