
一、掌握使用throw抛出异常javascript
二、总结Java中对异常处理的二种方式php
当程序发生错误时,系统会自动抛出异常,这是咱们上节使用的throws声明抛出异常,除此之外,Java也容许程序员自行抛出异常。自行抛出异常,使用throw语句完成。css
那么何时程序员自行抛出异常呢?通常状况下,程序员自行抛出的异常,是由业务产生的,好比性别输和不是“男“或”女“,系统是没法自行判断这种异常的,只能由程序员来决定是否抛出。html
1
|
throw
ExceptionInstance
|
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(
"性别必须是:男或女"
);
}
}
}
|
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();
}
}
}
|
使用不一样:throw用于程序中抛出异常;throws用于声明在该方法内抛出了异常前端
使用位置不一样:throw位于方法体内部,能够做为单独语句使用;throws必须跟方法参数列表后面,不能单独使用java
内容不一样:throw抛出一个异常对象,并且只能是一个;throws后面跟异常类,并且能够跟多个异常类。node
综合前几节所讲的内容,咱们对异常的处理有二种方法
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(
"感谢您使用本程序!"
);
}
}
}
|