电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何區(qū)分JAVA中的throws和throw

瀏覽:4日期:2022-08-30 11:18:22

throws和throw:

throws:用來聲明一個方法可能產生的所有異常,不做任何處理而是將異常往上傳,誰調用我我就拋給誰。

用在方法聲明后面,跟的是異常類名可以跟多個異常類名,用逗號隔開表示拋出異常,由該方法的調用者來處理throws表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常

throw:則是用來拋出一個具體的異常類型。

用在方法體內,跟的是異常對象名只能拋出一個異常對象名表示拋出異常,由方法體內的語句處理throw則是拋出了異常,執(zhí)行throw則一定拋出了某種異常

分別介紹:

throws在方法后邊聲明異常,其實就是自己不想對異常做出任何的處理,告訴別人自己可能出現(xiàn)的異常,交給別人處理;

注意:方法名后面跟上 throws Exception 證明這個方法里的語句可能會發(fā)生異常,注意是可能!在別處如果調用這個方法時,就必須也拋出異常或者用try catch 處理。 throws是可以單獨使用的。

eg:(代碼示例01)

public class Test { public static void main(String[] args) throws Exception { Test test = new Test(); /*** 調用的方法里拋出了異常,依然要調用的2種方式 * 1、繼續(xù)聲明異常(此代碼塊兒為本方式) * 2、用try catch 代碼塊包住 test.compute() */ test.compute(); } public void compute() throws Exception{ System.out.println('我可能發(fā)生異常'); System.out.println('3/0的值為' +3/0); }}

eg:(代碼示例02)

public class Test { public static void main(String[] args){ Test test = new Test(); /*** 調用的方法里拋出了異常,依然要調用的2種方式 * 1、拋出異常 * 2、用try catch 代碼塊包住 test.compute()進行捕獲并解決異常(此代碼塊兒為此方式) */ try { test.compute(); } catch (Exception e) { e.printStackTrace(); System.err.println('除數(shù)不能為0'); } } public void compute() throws Exception{ System.out.println('我可能發(fā)生異常'); System.out.println('3/0的值為' +3/0); }}

throw:就是自己處理一個異常,有兩種方式要么是自己捕獲異常try...catch代碼塊,要么是拋出一個異常(throws 異常)

eg(代碼示例01):

package Exception005.usuallyWrong.usuallyWrong01;import java.util.Scanner;/** * 方式1:方法后未加throws Exception,在代碼塊兒中使用try-catch進行捕獲異常,在if選擇結構中加入throw,實現(xiàn)了手動異常,方式2:調用方法時繼續(xù)聲明該異常 */public class ByoneselfThrow { String name; String sex; int age; public void byoneself(){ Scanner input=new Scanner(System.in); System.out.println('請輸入你的姓名:'); name=input.next(); System.out.println('請輸入你的年齡:'); age=input.nextInt(); System.out.println('請輸入你的性別:'); sex=input.next(); try{ if('男'.equals(sex)||'女'.equals(sex)){System.out.println('我的名字叫'+name+',年齡為'+age+',性別為'+sex); }else{throw new Exception('性別只能是男/女!'); } }catch (Exception e){ e.printStackTrace(); } }}class Test{ public static void main(String[] args) { ByoneselfThrow center=new ByoneselfThrow(); center.byoneself(); }}

eg(代碼示例02):

package Exception005.usuallyWrong.usuallyWrong01;import java.util.Scanner;/** * 方式1:方法后加throws Exception(聲明異常),在if選擇結構中加入throw(手動拋出異常),在調用方法時使用try-catch進行捕獲并解決異常,實現(xiàn)了手動異常 * 方式2:調用方法時繼續(xù)聲明該異常 */public class ByoneselfThrow { String name; String sex; int age; public void byoneself()throws Exception{ Scanner input=new Scanner(System.in); System.out.println('請輸入你的姓名:'); name=input.next(); System.out.println('請輸入你的年齡:'); age=input.nextInt(); System.out.println('請輸入你的性別:'); sex=input.next(); if('男'.equals(sex)||'女'.equals(sex)){System.out.println('我的名字叫'+name+',年齡為'+age+',性別為'+sex); }else{throw new Exception('性別只能是男/女!'); } } }class Test{ public static void main(String[] args) { ByoneselfThrow center=new ByoneselfThrow(); try { center.byoneself(); } catch (Exception e) { e.printStackTrace(); } }}

eg(代碼示例03):

package com.xinkaipu.Exception; public class TestThrow{ public static void main(String[] args) { try { //調用帶throws聲明的方法,必須顯式捕獲該異常 //否則,必須在main方法中再次聲明拋出 throwChecked(-3); } catch (Exception e) { System.out.println(e.getMessage()); } //調用拋出Runtime異常的方法既可以顯式捕獲該異常, //也可不理會該異常 throwRuntime(3); } public static void throwChecked(int a)throws Exception { if (a > 0) { //自行拋出Exception異常 //該代碼必須處于try塊里,或處于帶throws聲明的方法中 throw new Exception('a的值大于0,不符合要求'); } } public static void throwRuntime(int a) { if (a > 0) { //自行拋出RuntimeException異常,既可以顯式捕獲該異常 //也可完全不理會該異常,把該異常交給該方法調用者處理 throw new RuntimeException('a的值大于0,不符合要求'); } }}

總結:

throws可以單獨使用,throw不可以,必須搭配try catch,或者throws,若程序執(zhí)行到throw exception 語句,則后面的語句不會再執(zhí)行。

以上就是如何區(qū)分JAVA中的throws和throw的詳細內容,更多關于JAVA中的throws和throw的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | PCB接线端子_栅板式端子_线路板连接器_端子排生产厂家-置恒电气 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 精密模具加工制造 - 富东懿 | 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | 泉州陶瓷pc砖_园林景观砖厂家_石英砖地铺石价格 _福建暴风石英砖 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | TwistDx恒温扩增-RAA等温-Jackson抗体-默瑞(上海)生物科技有限公司 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 浙江美尔凯特智能厨卫股份有限公司 | 风淋室生产厂家报价_传递窗|送风口|臭氧机|FFU-山东盛之源净化设备 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 |