Java抛出异常的三种形式

Java捕获和抛出异常 异常处理机制:抛出异常和捕获异常;异常处理的5个关键字:try , catch ,finally,throw,throws try:监控区域catch:用于捕获异常finally:处理善后工作,finally,即使catch没有捕获到,最后也一定会被执行throw:主动在方法里抛出异常(是语句抛出一个异常,自己手动抛出某些特定类型的异常)throws:在方法上里抛出异常(是方法可能出现的异常用于throws声明,交给上层调用,自身并不主动处理)实例: 结果: 捕获异常后: 结果:.......... 阅读详情
AI摘要

本文围绕Java异常抛出展开,介绍了系统自动抛出异常的情况,如程序出现逻辑、主义或类型转换错误时会自动抛出。还阐述了throw语句主动抛出异常,以及throws在声明方法时表示可能抛出异常。对比了throw与throws的差异,并给出编程中处理异常的习惯建议。

一、系统自动抛出异常

当程序语句出现一些逻辑错误、主义错误或者类型转换错误时,系统会自动抛出异常
例一

 运行结果,系统会自动抛出ArithmeticException异常

 例二

 运行结果,系统会抛出NumberFormatException异常

二、throw

throw是语句抛出一个异常,一般是在代码的内部,当程序出现某种逻辑错误时同程序主动抛出某种特定类型的异常

 运行结果,系统会抛出NumberFormatException异常

三、throws
throws是方法可能会抛出一个异常(用在声明方法时,表示该方法可能要抛出异常)
public void function() throws Exception{......}
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理

 运行结果

throw与throws的比较
1、throws出现在方法函数头,而throw出现在函数体。
2、throws表示出现异常的一种可能性,并不一定会发生这些异常,throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

编程习惯
1、在写程序时,对可能会出现异常的部分通常要用try{…}catch{…}去捕捉它并对它进行处理;
2、用try{…}catch{…}捕捉了异常之后一定要对在catch{…}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();
3、如果是捕捉IO输入输出流中的异常,一定要在try{…}catch{…}后加finally{…}把输入输出流关闭;
4、如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。

Java异常处理--throw手动抛出异常对象 阅读详情

相关推荐

Java 异常处理 -- Java 语言的异常、异常链与断言

世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。

栗筝i的博客 5211

java中的异常处理

当我们在写代码的时候,某个地方可能会出错,需要对某个地方进行判断并进行异常抛出。 系统中的异常主要通过:try、catch、throw、throws和finally来控制。 一般try搭配catch使用,也可以是try...catch..finally这种形式。 在try中的代码是可能出现的异常,catch中代码是发生异常之后,要进行怎样的处理,使程序不受异常的影响正常运行下去,finally中的代码,无论是否发生异常都要执行的代码。 public class OnlyTest { public s

weixin_43213064的博客 684

COCO2017数据集类别分布深度解析

本文深入解析了COCO2017数据集的类别分布情况,包括80个常见物体的分类统计和样本数量分析。通过对比训练集与验证集的分布一致性,探讨了数据均衡性问题,并针对高频和低频类别提出了实用的数据预处理和模型训练建议,帮助优化计算机视觉任务的性能。

weixin_42533751的博客 370

Java中异常的抛出方式

1 问题如何在Java中直接抛出异常?2 方法在Java中直接抛出异常的方法是用关键字throw引发明确的异常。如果语句中throw被执行则后面的语句将不再执行,执行流程将会与catch匹配。这种是属于认为抛出异常,不是出错产生。对于问题的认为抛出后面必须要抓取这个问题并解决这个问题,不然程序运行会自动报错并终止。这里值得注意的是认为抛出异常(throw)和系统抛出异常(error)。对于erro...

算法与编程之美 3672

MATLAB 论文复现——面向紧急需求响应的规模化灵活资源负荷管理快速决策方法

其次,对灵活资源参与EDR的功率分配模型进行了建模,并提出了基于分层分布式共识算法的快速决策方法,对功率分配模型进行快速求解,以满足EDR实时性的需求,在保证较高精度的前提下提高了决策速度。[1]孔祥玉,杨至端,孙裕策,等.面向紧急需求响应的规模化灵活资源负荷管理快速决策方法[J/OL].电力系统自动化,1-13[2024-07-29].http://kns.cnki.net/kcms/detail/32.1180.TP.20240709.1843.002.html.关键词: 规模化灵活资源;

sjr1478的博客 374

零基础玩转华为AP 4050DN-HD:FAT模式家庭无线网络配置实战

本文为零基础用户提供华为AP 4050DN-HD从FIT模式转换为FAT模式的完整实战教程。详细介绍了固件升级、模式转换以及配置家庭无线网络(包括路由、DHCP、Wi-Fi和NAT)的每一步操作,帮助用户将企业级瘦AP改造为高性能家庭胖AP,打造稳定可靠的家庭网络环境。

weixin_29196613的博客 632

Java | 异常处理

详细介绍了Java中有关异常处理的相关知识点以及相应的java实现。

天下弈星~的博客 4895

告别手动打卡:逍遥模拟器+宥马运动自动跑步脚本配置全流程

本文详细介绍了如何利用逍遥模拟器和自动化脚本实现宥马运动的自动跑步功能,告别手动打卡的繁琐。从环境准备、脚本部署到定位配置和智能调度,全流程指导用户完成自动化设置,提升效率并确保运动数据的真实性。

weixin_42532473的博客 548

JAVA抛出异常的三种形式

一、系统自动抛出异常 当程序语句出现一些逻辑错误、主义错误或者类型转换错误时,系统会自动抛出异常 例一 public static void main(String[] args) { int a = 5; int b = 0; System.out.println( a / b); } 运行结果,系统会自动抛出ArithmeticException异常 Exception in thre...

KyrieCao的博客 6万+

PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】

最近,Proxmox VE 推出了基于 Debian 13 的 9.0 版本。正巧我手头有一台闲置的老电脑,与其闲置,不如装上 PVE,让它化身 All in One,继续发挥它的余热。G4560 算是一颗 NAS 神 U,十几元的售价就能有双核四线程,比起什么 J1900 不知道强到哪里去了,尽管定位上是奔腾处理器,但性能甚至能和同代的酷睿 i3-7100 掰掰手腕,并且它还自带 HD 610 的核显,对于解码的支持也还不错。

zc_mk的博客 7512

《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移

1

tonghu_note的博客 5618

java 异常抛出_JAVA抛出异常的三种形式详解

一、系统自动抛出异常当程序语句出现一些逻辑错误、主义错误或者类型转换错误时,系统会自动抛出异常例一public static void main(String[] args) {int a = 5;int b = 0;System.out.println( a / b);}运行结果,系统会自动抛出ArithmeticException异常Exception in thread "main" jav...

weixin_39867296的博客 1409

2024.6.10丨基于DIAMOND与VFDB数据库的致病菌毒力因子高效注释指南

本文详细介绍了基于DIAMOND与VFDB数据库的致病菌毒力因子高效注释方法,涵盖工具安装、参数优化、数据库选择及实战案例解析。通过DIAMOND的快速比对和VFDB的全面毒力因子数据,显著提升微生物基因组研究效率,适用于临床检测、食品安全监测等多个场景。

weixin_33712987的博客 376

抛出异常throw和throws总结

抛出异常主要有三种形式: throw(语句抛出的一个异常) throws(声明方法时,该方法可能抛出的异常) 系统 自动抛出异常 throw和throws的区别:1、throws出现在方法函数头可以单独使用 public void doA(int a) throws Exception1,Exception3{……}; 而throw出现在函数体且需和trycatch或throws一起使用, t

贝西晨的博客 1864

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2929

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

throw的用法 java_【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析...

异常处理机制异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环。异常有两个过程,一个是抛出异常;一个是捕捉异常。抛出异常抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。系统自动抛异常当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常。如:1publicstaticvoidmain(Strin...

weixin_39582737的博客 315

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java异常中throw和throws的用法和区别

java抛出异常的三种形式,throw,throws和系统自动抛出异常,在这里说一下throw和throws的用法以及区别 1. throw: throw是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出特定类型的异常 2. throws: throws是方法可能抛出异常的声明,用在声明方法时,表示该方法可能抛出异常,然后交给上层调用它的方法处理 3. throw和...

大房子爱生活的博客 2422

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java异常处理语法_Java异常处理中throw与throws关键字的用法及区别

抛出异常抛出异常有三种形式,一是throws,一个throw,还有一种系统自动抛异常。下面它们之间的异同:1.throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)throws 用于抛出方法层次的异常,并且直接由些方法调用异常处理类来处理该异常,所以它常用在方法的后面。语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}...

weixin_42502408的博客 504

Java SE:异常

异常

gdswsj的博客 1783

Java入门探索者之异常及异常处理

在Java中,确实可以自定义异常。自定义异常允许开发人员定义特定的错误或异常情况,以便在程序中轻松处理和识别。首先,需要定义一个新的类,这个类应该继承自Throwable类的某个子类,通常是Exception或。如果希望自定义的异常是编译时异常(即受检查异常),则应该继承Exception类。如果希望自定义的异常是运行时异常(即非受检查异常),则应该继承类。自定义异常定义完成后,就可以在程序中使用它了。抛出自定义异常:在需要抛出异常的地方,使用throw关键字后面跟自定义异常类的实例。

tjxzjbs的博客 629

java基础——throw与throws

异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环。 异常有两个过程,一个是抛出异常;一个是捕捉异常。 抛出异常 抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。 系统自动抛异常 当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常。如: public static v...

微仔的黄金小屋 426

Java基础——Java异常机制

1.Java异常关键字 try{}           有可能出现异常的代码 catch{}      根据try{}语句块中的异常和()中的异常来进行处理,可写多个catch finally{}     不管是否发生异常,都会执行的语句块 throw        使用throw关键字从方法中跑出一个异常,抛给方法本身 throws      将方法的异常抛给调用者   示例: ...

「谁定义我是我」 241

java为什么要抛出异常_java抛出异常是怎么回事?

一、Java异常的基础知识异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。有些异常需要做处理,有些则不需要捕获处理,后面...

weixin_29197051的博客 6780

[java进阶]——异常详解,try catch捕获异常,抛出异常

try-catch的执行原理,什么是编译异常,什么是运行异常,请举例finally关键字的作用throw与throws的区别。自定义异常的作用,有继承关系的catch语句,捕获父类异常一定放到最后

Panci_的博客 5517
上一篇: 什么是Java
下一篇: 零基础小白入门如何快速拿下Java
java面试官
博客等级 码龄5年 1986粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java面试官

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值