博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常和断言
阅读量:6208 次
发布时间:2019-06-21

本文共 3603 字,大约阅读时间需要 12 分钟。

异常处理的5个关键字:try,catch,finally,throw和throws

♦try:把要监控异常的代码放在try块里

♦catch:用来捕获异常并处理异常

1 /*file:ExceptionDemo.java;除数为零的异常处理*/ 2 public class ExceptionDemo 3 { 4     public static void main(String[] args) 5     { 6         int n1=10; 7         int n2=0; 8         try 9         {10             int result=n1/n2;11             System.out.println("两数相除的结果是:"+result);12         }13         catch(ArithmeticException ex)14         {15             System.out.println("出现除数为零的异常");16         }17     }18 }

  ArithmeticException:算术异常(算术错误情形,如以上例子,以零做除数)

  catch块必须和try块一起使用,catch块不能单独使用

♦多重catch块

1 /*file:ExceptionDemo2.java;多重catch块*/ 2 pubic class ExceptionDemo2 3 { 4     public static void main(String[] args) 5     { 6         try 7         { 8             int n1=Integer.parseInt(args[0]); 9             int n2=Integer.parseInt(args[1]);10             int result=n1/n2;11             System.out.println("两数相除的结果是:"+result);12         }13         catch(ArrayIndexOutOfBoundsException ex)14         {15             System.out.println("数组下标越界异常:请输入两个数");16         }17         catch(NumberFormatException ex)18         {19             System.out.println("数字格式异常:请输入两个整数");20         }21         catch(ArithmeticException ex)22         {23             System.out.println("算术异常:除数不能为零");24         }25     }26 }

  ArrayIndexOutOfBoundsException:数组下标越界异常

  NumberFormatException:数字格式异常

♦finally块:无论是否发生异常都必须执行

/*file:ExceptionDemo3;finally块的使用*/public calss ExceptionDemo3{    public static void main(String[] args)    {        int n1=10;        int n2=0;        try        {            int result=n1/n2;            System.out.println("两数相除的结果是:"+result);        }        catch(ArithmeticException ex)        {            System.out.println("除数不能为零");        }        finally        {            System.out.println("这是finally块中的代码,无论是否发生异常,必定执行");        }    }}

finally不能单独使用,必须和try块一起使用。finally块包含将资源返回给系统的语句或输出消息的语句,如果引发异常,即使没有catch块与引发的异常匹配,finally块也将执行。finally块是可选的,但每个try块应该至少有一个catch块或finally块。

♦嵌套try-catch块

 

/*file:ExceptionDemo4;嵌套try-catch块*/public class ExceptionDemo4{    public static void main(String[] args)    {        try        {            try            {                int n=Integer.parseInt(args[0]);                int square=n*n;                System.out.println(n+"的平方是:"+aquare);            }            catch(ArrrayIndexOutOfBoundsException ex)            {                System.out.println("数组下标越界异常:请输入一个数字");            }        }        catch(NumberFormatException ex)        {            System.out.println("数字格式异常:请输入一个整数");        }    }}

 

♦throw:throw关键字用于人为显式地抛出异常

/*file:ExceptionDemo5.java;*/public class ExceptionDemo5{    static void throwException(int n1,int n2)    {        try        {            if(n2==0)            {                throw new ArithmeticException("除数为零");            }            System.out.println("两数相除的结果是:"+n1/n2);        }        catch(ArithmeticException ex)        {            System.out.println(ex.getMessage());        }    }    public static void main(String[] args)    {        throwException(10,0);    }}

♦throw:用于在方法声明中回避该方法中不处理的异常

/*file:ExceptionDemo6.java;*/class ThrowsDemo{    public void throwsMethod(int n1,int n2) throw ArithmeticException    {        int result=n1/n2;    }}public class ExceptionDemo6{    public static void main(String[] args)    {        ThrowsDemo td=new ThrowsDemo();        try        {            td.throwsMethod(10,0);        }        catch(ArithmeticException ex)        {            System.out.println("算术异常:除数为零");        }    }}

 

 

转载于:https://www.cnblogs.com/SnowCloud/archive/2013/01/15/2861237.html

你可能感兴趣的文章
PreparedStatement
查看>>
错误: ‘EOF’在此作用域中尚未声明
查看>>
ajax跨域提交
查看>>
try_catch_finally的注意事项
查看>>
黄健:开放沟通,一”触“即发
查看>>
陆怡-互联网金融系统中的资金正确性保障
查看>>
Android Studio Gradle编译项目报错弹出一个提示框没有具体的错误信息
查看>>
JS向Action传中文参数乱码
查看>>
C#中与服务器TCP(异步回调)交互
查看>>
[科普]浏览器 UA 史
查看>>
centos6 sudo配合rsyslog日志审计
查看>>
RSA2012系列(6):ZettaSet的海量事件分析架构
查看>>
普华永道:2017年全球信息安全状况调查分析
查看>>
信息通信行业发展规划(2016-2020年)中网络信息安全相关内容摘录
查看>>
linux版wps-office安装缺少的字体
查看>>
Mongodb认识
查看>>
故障描述:VM在vCenter列表中显示为unknown状态
查看>>
ORA-01078: 和 LRM-00109:解决方法
查看>>
mysql导出xls的格式
查看>>
RHEL 7.5 设置IP地址,及常用基础网络命令
查看>>