Java 异常处理机制

try{

//有可能出现异常的语句

}catch(Exception e){ //匹配异常类型

//编写异常的处理语句

    System.out.println(e);    //一般写法

e.printStackTrace() //打印信息

}catch()...//多个catch()

 

finally{

//一定会运行的代码

}
 

Throwable的子类Exception、Error

Exception:一般表示程序中出的问题,可以直接用try...catch处理        //一般都用这个来捕获错误

Error:一般指的是JVM错误,程序中无法处理(JVM就是java虚拟机);

 

  • throws和throw
  1. throws:
class ListSetMap {

public static void main(String[] args) {

//要调用此方法就必须处理

try{

fun();

}catch(Exception e){

    System.out.println(e);

}

}

public static void fun() throws Exception{ //下面不用处理异常

System.out.println(1/0);

}

}

 

输出

java.lang.ArithmeticException: / by zero

2.throw

class ListSetMap {

public static void main(String[] args) {

try{

throw new Exception("自己抛出的异常");    //直接抛出异常

}catch(Exception e){

System.out.println(e);

}

}

}

注意:throw 一般都不会单独使用

  • 自定义异常类
class MyException extends Exception{

public MyException(String msg){

super(msg);    //调用父类构造方法

}

}

class ListSetMap { public static void main(String[] args) { try{ throw new MyException("自定义异常"); //对象 }catch(Exception e){ System.out.println(e); } } }

输出

MyException: 自定义异常

  • 断言
  1. assert boolean表达式;
class ListSetMap {

public static void main(String[] args) {

int x[]={1,2,3};

assert x.length==0:"数组长度不为0"; //"是打印错误的信息

}

}

肯定x的长度为0,输出为

Exception in thread "main" java.lang.AssertionError: 数组长度不为0

at ListSetMap.main(ListSetMap.java:4)

注意:断言返回的虽然是boolean值,但是不能作为条件判断

            一般开发并不提倡用断言

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值