自定义异常类
快捷方式
- 打开Exception类:连续点两下shift键
- 构造器:art+inset
- 选择打开栏的toString():art+inset
public class MyException extends Exception{
private int detail;
public MyException(int a) {
this.detail = a;
}
@Override
public String toString() {
return "MyException{" + detail + '}';
}
}
测试自定义的异常
方法1:
public class Test {
static void test(int a){
if(a>10){
try{
throw new MyException(a);
}catch(MyException e){
e.printStackTrace();
}
}
}
}
方法二:
static void test(int a) throws MyException{
System.out.println("传递的参数为:"+a);
if (a > 10) {
throw new MyException(a);
}
System.out.println("OK");
}
完整例子
public class Test2 {
static void test(int a) throws MyException{
System.out.println("传递的参数为:"+a);
if (a > 10) {
throw new MyException(a);
}
System.out.println("OK");
}
public static void main(String[] args) {
try{
test(11);
}catch(MyException e){
System.out.println("MyException=>"+e);
}
}
}
注意:
- 对于总结的第4点,可以增加代码块处理异常,而不是单纯打印
- 列如:if(){}语句按自己的要求输出提示
总结:
- 处理运行异常时,采用逻辑去合理规避同时辅助try-catch处理
- 在多重catch块后面,也可以加一个catch(Exception)来处理可能被遗漏的异常
- 对于不确定的代码,也可以加上try-catch,处理潜在的异常
- 重点:尽量去处理异常,不要只是简单地调用printStackTrace() 打印输出用快捷键Alt+Enter
- 具体如何处理异常,要根据不同的业务需求类型去决定(公司不同,异常不同)
- 尽量添加finally语句块去释放占用的资源(尤其IO流)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人