Java方法中throws Exception使用案例!什么情况下使用throws Exception?
Posted on 2020-04-20 18:38 且行且思 阅读(1918) 评论(0) 编辑 收藏 举报1、(终极解释!!!)throws Exception放在方法后边,是throws Exception表示的是本方法不处理异常,交给被调用处处理(如果你不希望异常层层往上抛,你就要用throws Exception) ,而且被调用处必须处理。
2、throw new Exception 表示人为的抛出一个异常,例如:
public boolean insert(News n) {
try{
.....
}catch{
throw new Exception("这是我自己抛出的一个异常,如果我看到此段信息表示我这个方法这儿出错了,给自己看的!");
}finally{
}
}
3,首先方法后边加上throws Exception的作用是抛出异常。其中Exception可以理解为所有异常,也可以抛出指定异常。如果方法后边不加throws Exception,方法出了异常就会向上传递抛出(如果方法有调用者,那就交给调用者处理,如果调用者继续一层层抛出,最终交给虚拟机,虚拟机处理,整个程序会中断! 如果在程序中捕获 还可以继续进行。)。
4,如果有异常你不用层层向上抛出那么你就要用throws Exception,然后在调用时加上try catch语句处理...。。。如果有异常我一般选择这种处理方法。相比不用throws Exception,加上了throws Exception后,调用该方法时,必须加上try...catch才可以(你加上throw exception。调用的地方就必须try catch,不然编译都不过。。这样代码就更健壮了。)。
相当于一种约束,如果不加throws Exception,在多个地方调用方法时,添加try...catch也可以,但是有时候就会忘记加try...catch。
5,另外异常处理的原则是尽可能早的catch异常,正常的程序不应该写throws Exception。
6,运行异常(继承RuntimeException)可以不捕获,向上抛,如果一直没有处理,则jvm会自动处理(停止线程,打印异常)。
---非运行期异常,必须捕获或者在方法声明。
public class helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.printf("hello.java");
try {
test();
} catch (Exception e) {
System.out.printf(e.getMessage());
}
}
/*
*
* throws
* Exception:如果出现未知错误,会跑出Exception。如果这里加了异常捕捉,调用test方法时,就要加上try...catch
*/
private static void test() throws Exception {
ArrayList list = new ArrayList();
int x = 1;
int y = 2;
int z = 3;
if (x + y >= z) {
System.out.printf("逻辑正确!");
} else {
throw new Exception("test方法有问题"); // 手动抛出一个异常
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2009-04-20 VS2008中JavaScript编辑调试器的秘密
2009-04-20 VS 母版页详解实现具体方法
2009-04-20 Asp.Net 2.0 的 Master Page(母版页)
2009-04-20 在子页里能控制母版页的内容吗?
2009-04-20 vs2008 使用母版页时碰到[js的智能提示]和[相对路径] 的问题。
2009-04-20 vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破解方法。