java异常lesson基础入门.docx
- 文档编号:12637394
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:26
- 大小:1.51MB
java异常lesson基础入门.docx
《java异常lesson基础入门.docx》由会员分享,可在线阅读,更多相关《java异常lesson基础入门.docx(26页珍藏版)》请在冰点文库上搜索。
java异常lesson基础入门
importjava.awt.*;
importjava.awt.event.*;
import.*;
importjava.io.*;
publicclassChatServer
{
publicstaticvoidmain(String[]args)
{
booleanstarted=false;//判断服务器是否启动了,先假定没有启动
ServerSocketss=null;
DataInputStreamdis=null;
try
{
ss=newServerSocket(8888);
started=true;//服务器已经启动了,设置started为true
while(started)
{//当服务器端启动时。
。
。
。
booleanbConnect=false;//判断服务器和客户端的连接是否已经建立,没有为false,连接成功返回true
Sockets=ss.accept();//accept()与readUTF()方法一样,都是一个阻塞式方法,如果没有收到连接请求,则一直等待。
。
。
。
。
bConnect=true;//连接成功,设置bConnect为true
System.out.println("一个连接已经建立!
");//--------------------------
dis=newDataInputStream(s.getInputStream());
while(bConnect)
{
Stringstr=null;
str=dis.readUTF();//如果客户端突然断开连接,该语句就会抛出异常EOFException,所以我们必须得对dis.readUTF();进行异常处理
//readUTF()是阻塞式方法,如果得不到数据,则继续等待,直到读取到数据为止
System.out.println("从客户端接受的数据是:
"+str);
}
}
}
catch(BindExceptione)
{
System.out.println("端口已被占用,其使用其他端口");
System.out.println("请关闭相关程序,重新运行!
");
System.exit(-1);
}
catch(EOFExceptione)
{
System.out.println("客户端已经断开连接!
");
}
catch(IOExceptione)
{
//e.printStackTrace();
System.out.println("服务器端读写错误!
");
}
finally
{
try
{
if(null!
=ss)//如果监听程序打开了,则关闭网络监听程序
{
ss.close();
ss=null;
}
if(null!
=dis)//如果输入流打开了,则关闭输入流
{
dis.close();
dis=null;
}
}
catch(Exceptione)
{
}
}
}
}
classA
{
intdivide(inta,intb)
{
returna/b;
}
intadd(inta,intb)
{
returna+b;
}
}
classExcep_1
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
try
{
inti=aa.divide(3,0);
System.out.println(i);
}
catch(ArithmeticExceptione)
{
System.out.println("除数不能为零!
");
}
intj=aa.add(2,4);
System.out.println("j="+j);
}
}
/*
Exception类中有一个private的Message属性,通过构造函数
publicException(Stringmessage)
可以完成对该属性的初始化
*/
classEextendsException
{
publicE()
{
super("哈哈");//这实际是调用父类Exception的构造函数:
publicException(Stringmessage)
//this.Message="哈哈";//error
}
}
classM
{
publicstaticvoidf()throwsE//也可以改为throwsException
{
thrownewE();
}
publicstaticvoidmain(String[]args)
{
try
{
f();
}
catch(Exceptione)
{
StringstrExcep=e.getMessage();
System.out.println("strExcep="+strExcep);
}
System.out.println("程序正常终止了!
");
}
}
/*
在JDK1.6中的运行结果是:
--------------------------------
strExcep=生命在于静止!
程序正常终止了!
--------------------------------
总结:
getMessage()返回的是异常的具体信息,是个String类型
publicException(Stringmessage)用message字符串来表示异常的具体信息
*/
/*
2009年1月21日17:
09:
38
自定义异常
*/
classDivisorIsMinusExceptionextendsException
{
publicDivisorIsMinusException(Stringmessage)
{
super(message);//实际是调用Exception的构造函数publicException(Stringmessage)
}
}
classHH
{
publicvoidf(inta,intb)throwsDivisorIsMinusException
{
if(b<0)
thrownewDivisorIsMinusException("除数不能为负数!
");
}
}
classExcep_3
{
publicstaticvoidmain(String[]args)
{
HHh=newHH();
try
{
h.f(3,-2);
}
catch(DivisorIsMinusExceptione)
{
System.out.println(e.getMessage());
}
System.out.println("程序正常终止了!
");
}
}
/*
在JDK1.6中的运行结果是:
--------------------------
除数不能为负数!
程序正常终止了!
--------------------------
*/
/*
2009年1月21日21:
55:
05
子类覆盖了基类方法时,
子类方法抛出异常的范围不能大于基类方法抛出的异常范围
子类方法可以不抛出异常,也可以只抛出基类方法的部分异常
但不可以抛出基类方法以外的异常
*/
//自定义异常A
classAextendsException
{
}
//自定义异常B
classBextendsException
{
}
//自定义异常C
classCextendsException
{
}
classM
{
voidf()throwsA,B
{
}
}
classNextendsM
{
voidf()throwsA,B//可以throwsA或B,也可以throwsA,B也可以不throws,但不可以throwsC即"子类覆盖了基类方法时,子类方法抛出异常的范围不能大于基类方法抛出的异常范围"
{
}
}
classTest
{
publicstaticvoidmain(String[]args)
{
Mm=newM();
Nn=newN();
System.out.println("1111");
}
}
/*
在JDK1.6中的运行结果是:
--------------------------
1111
--------------------------
*/
publicclassTestIndexOutOf{
publicstaticvoidmain(String[]args){
Stringfriends[]={"Lisa","Bily","Kessy"};
for(inti=0;i<5;i++){
System.out.println(friends[i]);
}
System.out.println("\nthisistheend");
}
}
classPerson{
publicintage;
}
publicclassTestNullPointerException{
publicstaticvoidmain(String[]args){
Personp=null;
System.out.println(p.age);
}
}
/*
2009年3月14日9:
34:
11
先catch子类异常再catch父类异常
如果先catch父类异常再catch子类异常,则编译时会报错
*/
classAextendsException
{
}
classBextendsA
{
}
classCextendsB
{
}
classM
{
publicvoidcompare(inti,intj)throwsA,B
{
if(i>j)
thrownewA();
else
thrownewB();
}
}
publicclassTestTryCatch
{
publicstaticvoidmain(String[]args)
{
Mmm=newM();
try
{
pare(-4,1);
}
catch(Bbb)
{
System.out.println("左边不能小于右边");
}
catch(Aaa)
{
System.out.println("左边不能大于右边");
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 异常 lesson 基础 入门