标签:Java 处理 System try finally println 异常 out
程序运行过程中发生的不正常行为叫做异常
异常体系图
Error
栈溢出
内存溢出
Exception
运行时异常
空指针异常
数学运算异常
类型转换异常 classCastException
数组下标越界异常
数字格式化异常 NumberFormatException
int a = Integer.parseInt("s");
编译时异常
是指代码在编译期间就必须处理的异常,否则代码不能编译通过
IOException
ClassNotFoundException
FileNotFoundException
SQLException
throw 和 throws 的区别
throw :手动生成异常对象的关键字,位置在方法体中, 用在方法体内,抛出具体的异常,由方法体处理。
throws:方法抛出的一个异常,可以声明多个,用逗号隔开,由方法调用方处理
try…catch…finally
当需要抛出多个异常,子类异常在前,父类异常在后
try…finally 等于没有抛出异常
try {
int a = Integer.parseInt("");
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println("打印finally");
}
System.out.println("打印最后");
try {
int a = Integer.parseInt("");
}finally {
System.out.println("打印finally");
}
System.out.println("打印最后");
执行顺序
try {
int a = Integer.parseInt("");
return;
}catch (Exception e){
e.printStackTrace();
System.out.println("异常");
return;
}finally {
System.out.println("打印finally");
}
try {
int a = Integer.parseInt("3");
System.out.println("正常");
return;
}catch (Exception e){
e.printStackTrace();
System.out.println("异常");
return;
}finally {
System.out.println("打印finally");
}
异常执行顺序
// 捕获异常后,程序会继续执行,aaa不会被执行
try {
Integer a = null;
a.equals("1");
System.out.println("aaa");
}catch (Exception e){
// 捕获异常
e.printStackTrace();
}
System.out.println("程序继续执行");
java.lang.NullPointerException
at com.zs.backend.test.Out.main(Out.java:8)
程序继续执行
try {
Integer a = null;
a.equals("1");
System.out.println("aaa");
}catch (Exception e){
// 捕获异常
//e.printStackTrace();
}
System.out.println("程序继续执行");
程序继续执行
自定义异常
public class Out {
public static void main(String[] args) {
int a = 10;
if(a > 1){
throw new CC("异常");
}
}
}
class CC extends RuntimeException{
public CC(String msg){
super(msg);
}
}
> 1){
throw new CC("异常");
}
}
}
class CC extends RuntimeException{
public CC(String msg){
super(msg);
}
}
标签:Java,处理,System,try,finally,println,异常,out 来源: https://blog.csdn.net/qq_30450563/article/details/121276151
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。