跟王老师异常(六):抛出异常:使用throw抛出异常

抛出异常:使用throw抛出异常

主讲人:王少华  QQ群号:483773664

学习目标:

一、掌握使用throw抛出异常javascript

二、总结Java中对异常处理的二种方式php

1、使用情境

当程序发生错误时,系统会自动抛出异常,这是咱们上节使用的throws声明抛出异常,除此之外,Java也容许程序员自行抛出异常。自行抛出异常,使用throw语句完成。css

那么何时程序员自行抛出异常呢?通常状况下,程序员自行抛出的异常,是由业务产生的,好比性别输和不是“男“或”女“,系统是没法自行判断这种异常的,只能由程序员来决定是否抛出。html

2、语法

1
throw ExceptionInstance

3、示例

(一)书写throw异常

1
2
3
4
5
6
7
8
9
10
11
12
public class Person {
     private String name;
     private int age;
     private String sex;
     public void setSex(String sex) throws Exception {
         if ( "男" .equals(sex)|| "女" .equals(sex)){
             this .sex = sex;
         } else {
             throw new Exception( "性别必须是:男或女" );
         }
     }
}

(二) 捕获throw异常

1
2
3
4
5
6
7
8
9
10
public class Test {
     public static void main(String[] args) {
         Person person = new Person();
         try {
             person.setSex( "male" );
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
}


4、throw和throws的区别

  1. 使用不一样:throw用于程序中抛出异常;throws用于声明在该方法内抛出了异常前端

  2. 使用位置不一样:throw位于方法体内部,能够做为单独语句使用;throws必须跟方法参数列表后面,不能单独使用java

  3. 内容不一样:throw抛出一个异常对象,并且只能是一个;throws后面跟异常类,并且能够跟多个异常类。node

5、throw和catch同时使用

综合前几节所讲的内容,咱们对异常的处理有二种方法
python

  • 在出现异常的方法内捕获并处理异常,使用try-catch-finallly,该方法的调用者不用再次捕获该异常。mysql

  • 该方法签名中声明抛出该异常,将该异常交给方法调用都处理.jquery

(一)应用情境

实际应用中每每须要更复杂的处理方式:当一个异常出现的时候,单靠某个方法没法彻底处理该异常,必须由几个方法才能够彻底处理该异常。也就是说,异常出现的当前方法中,程序只对异常进行部分处理,还有些处理须要该方法的调用者中才能完成,因此应该再次抛出异常。

(二)示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Cal {
     public String division(String stra, String strb) throws Exception{
         try {
             int a = Integer.parseInt(stra);
             int b = Integer.parseInt(strb);
             int c = a / b;
             return String.valueOf(c);
         } catch (NumberFormatException e) {
             System.err.println( "数字格式异常:程序只能接受整数参数" );
             return "数字格式异常" ;
         } catch (Exception e) {
             throw new Exception( "未知异常" );
         } finally {
             System.out.println( "感谢您使用本程序!" );
         }
     }
}
1
2
3
4
5
6
7
8
9
10
public class Test6 {
     public static void main(String[] args) {
         Cal cal = new Cal();
       
提问和评论均可以,用心的回复会被更多人看到 评论
发布评论

相关文章

推荐专栏 更多
相关文章
相关标签/搜索