📄 java异常处理机制的详解和使用技巧-java面向对象 - it电子教育门户 高端java培训.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://www.mldn.cn/articleview/2007-11-1/article_view_2609.htm -->
<HTML><HEAD><TITLE>Java异常处理机制的详解和使用技巧/JAVA面向对象 - IT电子教育门户 高端JAVA培训</TITLE>
<STYLE type=text/css>BODY {
FONT-SIZE: 12px
}
TD {
FONT-SIZE: 12px
}
TH {
FONT-SIZE: 12px
}
.STYLE1 {
FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #003399
}
.STYLE2 {
FONT-SIZE: 14px
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<META content=g0IGIjwMtoTt4TksXOL7QykvujGWD7D0AoPDPWEsjRs= name=verify-v1>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META http-equiv=Content-Language content=zh-CN>
<META content=java培训,mldn,JAVA教程,北京JAVA培训,IT电子教育门户,北京JAVA培训,JAVA,异常处理
name=keywords>
<META
content=异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。&nbsp;
name=description>
<META content=all name=robots>
<META content=www.mldn.cn,所有版权 name=Copyright>
<STYLE type=text/css>BODY {
MARGIN: 0px
}
</STYLE>
<STYLE type=text/css>IMG {
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
A:link {
TEXT-DECORATION: none
}
BODY {
FONT-SIZE: 12px
}
TD {
FONT-SIZE: 12px
}
TH {
FONT-SIZE: 12px
}
A:visited {
TEXT-DECORATION: none
}
A:hover {
TEXT-DECORATION: underline
}
A:active {
TEXT-DECORATION: none
}
.input {
BORDER-RIGHT: #acb4b7 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9aa1a9 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 14px; BACKGROUND-ATTACHMENT: fixed; BACKGROUND-IMAGE: url(image/search/input.gif); PADDING-BOTTOM: 5px; BORDER-LEFT: #9aa1a9 1px solid; WIDTH: 550px; PADDING-TOP: 5px; BORDER-BOTTOM: #acb4b7 1px solid; BACKGROUND-REPEAT: no-repeat; HEIGHT: 30px; TEXT-ALIGN: left
}
</STYLE>
</STYLE><!--系统js,必须调用-->
<SCRIPT src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/public.js"
type=text/javascript></SCRIPT>
<LINK title=rss href="http://www.mldn.cn/rssfeed.asp" type=application/rss+xml
rel=alternate></HEAD>
<BODY><!--头部代码结束-->
<TABLE cellSpacing=0 cellPadding=0 width=890 align=center border=0>
<TBODY>
<TR>
<TD width=274><A href="http://www.mldn.cn/"><IMG height=79 alt=MLDN
src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/logo.gif"
width=274 border=0></A></TD>
<TD width=616><IMG height=79
src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/main_r1_c2.gif"
width=616 useMap=#Map border=0></TD></TR></TBODY></TABLE><MAP name=Map><AREA
shape=RECT coords=8,22,45,49 href="http://www.mldn.cn/"><AREA shape=RECT
coords=53,22,113,50
href="http://www.mldn.cn/articlelist/article_3_adddate_desc_1.htm"><AREA
shape=RECT coords=116,20,177,51
href="http://www.mldn.cn/articlelist/article_4_adddate_desc_1.htm"><AREA
shape=RECT alt=java培训 coords=181,21,242,51
href="http://www.mldn.cn/articlelist/article_58_adddate_desc_1.htm"><AREA
shape=RECT coords=245,21,307,52 href="http://www.mldnjava.cn/"><AREA
shape=RECT coords=309,21,374,51 href="http://www.zhinangtuan.net.cn/"><AREA
shape=RECT target=_blank coords=376,21,439,50
href="http://www.mldnjava.cn/java/index.htm"></MAP>
<SCRIPT language=javascript></SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 width=890 align=center border=0>
<TBODY>
<TR>
<TD><A href="http://www.mldnjava.cn/java/" target=blank><IMG height=150
alt=远程JAVA培训
src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/index_banner.jpg"
width=890></A></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=890 align=center bgColor=#f1f1f1
border=0>
<TBODY>
<TR>
<TD vAlign=top width=670>
<TABLE cellSpacing=1 cellPadding=0 width="99%" align=center
bgColor=#cccccc border=0>
<TBODY>
<TR>
<TD bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center
border=0>
<TBODY>
<TR>
<TD bgColor=#e4e4e4 colSpan=2><A
href="http://www.mldn.cn/"><B>IT电子教育门户 高端JAVA培训</B></A> -=>
<A
href="http://www.mldn.cn/articlelist/article_4_adddate_desc_1.htm"><B>资源中心</B></A>
-=> <A
href="http://www.mldn.cn/articlelist/article_11_adddate_desc_1.htm"><B>JAVA
SE技术专区</B></A> -=> <A
href="http://www.mldn.cn/articlelist/article_18_adddate_desc_1.htm"><B>JAVA面向对象</B></A>
-=> 正文</TD></TR>
<TR>
<TD align=middle colSpan=2 height=40>
<H1>Java异常处理机制的详解和使用技巧</H1></TD></TR>
<TR align=middle>
<TD colSpan=2 height=40>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-8263014661871932";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
//2007-02-14: 新闻内容页面上面
google_ad_channel = "8423241514";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "333333";
google_color_text = "333333";
google_color_url = "003366";
//--></SCRIPT>
<SCRIPT
src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</TD></TR>
<TR>
<TD colSpan=2 height=40> 发布日期:2007-11-1
9:54:00 发布者:[<A
href="http://www.mldn.cn/florilegium.jtml?a_name=IT电子教育门户&a_id=0"
rel=external>IT电子教育门户</A>] 评论:[
<SCRIPT
src="Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/error.htm"
type=text/javascript></SCRIPT>
] 浏览:
<SCRIPT
src="C:\Documents and Settings\elibuser\桌面\面向对象学习文档\Java异常处理机制的详解和使用技巧-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files\error(1).htm"
type=text/javascript></SCRIPT>
</TD></TR>
<TR>
<TD colSpan=2><SPAN class=STYLE2>
<DIV id=article><FONT face="Times New Roman">1. 异常机制 <BR>1.1
<BR>异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
<BR>1.2
<BR>传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解。
<BR>1.3 异常处理的流程 <BR>1.3.1 遇到错误,方法立即结束,并不返回一个值;同时,抛出一个异常对象
<BR>1.3.2 调用该方法的程序也不会继续执行下去,而是搜索一个可以处理该异常的异常处理器,并执行其中的代码 <BR>2
异常的分类 <BR>2.1 异常的分类 <BR>2.1.1
<BR>异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。
<BR>2.1.2
<BR>Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。
<BR>2.2 每个类型的异常的特点 <BR>2.2.1 Error体系
<BR>Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。
<BR>2.2.2 Exception体系
<BR>Exception体系包括RuntimeException体系和其他非RuntimeException的体系
<BR>2.2.2.1 RuntimeException
<BR>RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
<BR>2.2.2.2 其他(IOException等等)
<BR>这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
<BR>2.3 与C++异常分类的不同 <BR>2.3.1
<BR>其实,Java中RuntimeException这个类名起的并不恰当,因为任何异常都是运行时出现的。(在编译时出现的错误并不是异常,换句话说,异常就是为了解决程序运行时出现的的错误)。
<BR>2.3.2
<BR>C++中logic_error与Java中的RuntimeException是等价的,而runtime_error与Java中非RuntimeException类型的异常是等价的。
<BR>3 异常的使用方法 <BR>3.1 声明方法抛出异常 <BR>3.1.1 语法:throws(略)
<BR>3.1.2 为什么要声明方法抛出异常?
<BR>方法是否抛出异常与方法返回值的类型一样重要。假设方法抛出异常确没有声明该方法将抛出异常,那么客户程序员可以调用这个方法而且不用编写处理异常的代码。那么,一旦出现异常,那么这个异常就没有合适的异常控制器来解决。
<BR>3.1.3 为什么抛出的异常一定是已检查异常?
<BR>RuntimeException与Error可以在任何代码中产生,它们不需要由程序员显示的抛出,一旦出现错误,那么相应的异常会被自动抛出。而已检查异常是由程序员抛出的,这分为两种情况:客户程序员调用会抛出异常的库函数(库函数的异常由库程序员抛出);客户程序员自己使用throw语句抛出异常。遇到Error,程序员一般是无能为力的;遇到RuntimeException,那么一定是程序存在逻辑错误,要对程序进行修改(相当于调试的一种方法);只有已检查异常才是程序员所关心的,程序应该且仅应该抛出或处理已检查异常。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -