十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
try{
专注于为中小企业提供成都网站建设、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业土默特右旗免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
//代码
代码中通常会出现不知情却在情理中的错误
int
age
=
a.getAge();//如果a对象为空,你却调用它的方法就会报NullPointerException异常
}catch(//异常类型
NullPointerException
ne){//获取你可以预知的异常
//异常处理就是你捕获了这个异常你要这个异常进行哪种操作
//一般的操作就是记录到日志里
//然后抛出去或者返回状态
}catch(Exception
ex){//这个是所有异常的父类
//因为很多异常是不可预知的
//记录到日志里
//然后抛出去或者返回状态
}
比如你又一个方法叫a,调用了一个方法b(b方法throws了一个异常),那么在a里面使用try-catch捕获这个异常,在catch块里面,使用jsp的request,或者session将异常对象e.getMessage的内容存储到制定的变量里面(例如request.setAttribute("errorMessage",e.getMessage));
然后到页面使用EL表达式${errorMessage}取出来就好了。
如果不抛出异常则是在catch块里,抛出则由调用方法的类处理。
为了避免调用的人不知道有异常,才抛出异常的,所以是谁掉用的久在哪里处理。说的对吗
对.
1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。如下面例子所示:
public
class
Shoot
{
创建类
static
void
pop()
throws
NegativeArraySizeException
{
//定义方法并抛出NegativeArraySizeException异常
int
[]
arr
=
new
int[-3];//创建数组
}
public
static
void
main(String[]
args)
{//主方法
try
{
pop();
//调用pop()方法
}
catch
(NegativeArraySizeException
e)
{
System.out.println("pop()方法抛出的异常");//输出异常信息
}
}
}
2、throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。举例如下:
class
MyException
extends
Exception
{
//创建自定义异常类
String
message;
//定义String类型变量
public
MyException(String
ErrorMessagr)
{
//父类方法
message
=
ErrorMessagr;
}
public
String
getMessage(){
//覆盖getMessage()方法
return
message;
}
}
public
class
Captor
{
//创建类
static
int
quotient(int
x,int
y)
throws
MyException{//定义方法抛出异常
if(y
0){
//判断参数是否小于0
throw
new
MyException("除数不能是负数");//异常信息
}
return
x/y;//返回值
}
public
static
void
main(String
args[]){
//主方法
try{
//try语句包含可能发生异常的语句
int
result
=
quotient(3,-1);//调用方法quotient()
}catch
(MyException
e)
{
//处理自定义异常
System.out.println(e.getMessage());
//输出异常信息
}
catch
(ArithmeticException
e)
{
//处理ArithmeticException异常
System.out.println("除数不能为0");//输出提示信息
}
catch
(Exception
e)
{
//处理其他异常
System.out.println("程序发生了其他的异常");
//输出提示信息
}
}
}
Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。
1、捕获异常:
(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
(3)捕获异常是通过try-catch-finally语句实现的。语法为:
try{
...
}catch(ExceptionName1e){
...
}catch(ExceptionName2e){
...
}
...
}finally{
...
}
2、声明抛弃异常:
(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。
(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:
publicintread()throwsIOException{
...
}
其中throwsIOException就是声明抛弃异常,throws后可以跟多个异常类型。
扩展资料:
程序设计语言的异常机制:
1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);
2、异常处理代码的作用范围用标记子句(try或begin开始的语言作用域)标示其起始,以第一个异常处理子句(catch,except,resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。
3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally,ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。
(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。
(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structuredexceptionhandling)。
(3)Python语言对异常处理机制是非常普遍深入的,所以想写出不含try,except的程序非常困难。
参考资料来源:
百度百科-异常处理