版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1异常的基本概念异常:异常不是错误是程序中发生的不正常事
件流它的根类为Execption(Throwable)
Throwable下面包括Execption和error(错误);
异常分为:运行期异常和编译期异常;
一旦发生了异常,异常代码以后的语句不会再执行,直接退出程序为了保证即使出现
了异常,也不会让程序终止!(处理异常)
try{可能会出现异常的代码
}catch(异常类型异常对象)(
捕获异常
}catch(异常类型异常对象){
捕获异常
}……
finally(最终的执行语句,不管异常捕获与否都会去执行
)注意:不要随意将不相关的代码放到try块中,因为随时可能会中断执行。
捕获异常的时候尽量去捕获具体的异常信息
当有多个异常信息的时候必须把大的异常信息放在后面小的异常信息放在前面
pubicclassSimpleDateFormatDemo(
publicstaticvoidmain(String[]args)(test();
)
publicstaticvoidtest()(
〃创建时间对象
Datedate=newDate();
〃创建不同格式的时间
DateFormatdf=DateFormat.getlnstance();
DateFormatdf1=newSimpleDateFormat('yyyy-MM-ddHH:mm:ss
EE");
DateFormatdf2=
DateFormat.getDatelnstance(DateFormat.FULL,Locale.JAPAN);/俨生一个指定国家的日
期,长度不同,显示日期的完整性也不同
DateFormatdf3=newSimpleDateFormat("yyyy年MM月dd日HH时
mm分ss秒EE",Locale.CHINA);DateFormatdf4=newSimpleDateFormat("yyyy-MM-
dd)
System.out.println(*'java自带的显示方式:"+date);
System.out.println("§定义的模式显示:
"+dH.format(date));(“按照FULL时间模式显示:
H+df2.format(date));System.out,println("i$照区域为中国显示:
”+df3.foimat(date));("按照yyyy-MM-dd显示:
H+df4.format(date));
泛型:泛型的本质是参数化类型
泛型可加在类,接口,方法上面
在方法上使用泛型时必须是引用数据类型或者是封装类型
泛型可以在类的外部指明方法和参数的类型Date,java
packageday09;importjava.util.Date;
publicclassDateDemo(publicstaticDategetDate(){
returnnewDate();
}publicstaticvoidmain(String[]args)(Dated=getDate();
System.out.println(d);System,out.printin(d.geWateQ);
System.out.println(d.geWayQ);
Svstem.out.Drintin(d.getHouns());System.outDrintlnfd.:
System.out.println(d.get¥eapQ+1900):})
12SimpleDateFormat.javapackageday09;
importjava.text.DateFormat;importjava.text.ParseException;
importjava.text.SimpleDateFormat;importjava.util.Date;
importjava.util.Locale;publicclassSimpleDateFormatDemo(
publicstaticvoidmain(String[]args)throwsParseException(test();
)
publicstaticvoidtest()throwsParseException(
〃创建时间对象
Datedate=newDate();
〃创建不同格式的时间
DateFormatdf=DateFormat.getlnstance();
DateFormatdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss
EE");
DateFormatdf2=
DateFormat.getDatelnstance(DateFormatFULL,Locale.JAPAN);〃产生一个指定国家的日
期,长度不同,显示日期的完整性也不同
DateFormatdf3=newSimpleDateFormatf'yyyy年MM月ddHHH时
mm分ss秒EE",Locale.CHINA);DateFormatdf4=newSimpleDateFormat("yyyy-MM-
dd“);
System.out.println(Hjava自带的显示方式:"+date);
System.outprintln(巧定义的模式显示:
”+dfl.format(date));(”按照FULL时间模式显示:
H+df2.format(date));System.out.println(*按照区域为中国显示:
"+df3.format(date));("按照yyyy-MM-dd显示:
H4-df4.format(date));/★★
*可将字符串转化为日期型*/
Stringstr="03-12-30下午2:24";Stringstrr="2008-08-0808:08:08星期
五”;
Datedatel=df.parse(str);〃将字符串转化为Date对象Datedate2=
df1.parse(strr);
System.out.println(datel);System.out.printlnidate2);
))
13Calendar.javapackageday09;
importjava.text.SimpleDateFormat;importjava.util.Calendar;
importjava.util.Date;importjava.utiLGregorianCalendar;
importjava.util.Locale;importjava.util.TimeZone;
publicclassCalendarDemo(
publicstaticvoidmain(String[]args)(test();
)
publicstaticvoidtest()(Calendarnow1=Calendar.getlnstance();
Calendarnow2=newGregorianCalendar();Calendarnow3=new
GregorianCalendar(2007,10,30);
Calendarnow4=newGregorianCalendar(2007,10,30,15,55);Calendar
now5=newGregorianCalendar(2017,02,16,14,56,44);
Calendarnow6=newGregorianCalendar(Locale.US);
Calendarnow7=new
GregorianCalendar(TimeZone.getTimeZone("GMT-8:00n));now2.setTime(newDate());
System.ouLprinlln(now2);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月ddH");
System.out.println(sdf.format(now5.getTime()));
System.out.println(now5.get(Calendar.YEAR));System.out.println(now1.g
et(Calendar.MONTH)+1);
System.out.println(now5.get(Calendar.DAY_OF_MONTH));System.out.pr
intln(now5.get(Calendar.HOUR));
System.out.println(now5.get(Calendar.M
INUTE));System.out.println(now5.get(Calendar.SECOND));
System.out.println(now5.get(Calendar.AM_PM));System.out.println(now5.
get(Calendar.DAY_Or_WEEK));
Stringweek[]={二”日"“一“,“二三“,“四五”,“六}
System,out.printIn(week[now5.get(CaIendar.DAY_OF_WEEK)]);
14Math数学类packageday09;
publicclassMathDemo(
publicintmaxValue(intx,inty)(intmax=MathmQX(x,y);
returnmax;
)
publicdoubleduiS(doublea){
doubled=Math,Log(a);returnd;
)
publicstaticvoidmain(String[]args)(
System.out.println(newMathDemo().maxValue(50,5));
System.out.println(newMathDemo().duiS(Math.E));
})
15Random.javapackageday09;
importjava.util.Random;publicclassRandomDemo(
publicstaticvoidmain(String[]args){
Randomrand=newRandom();booleanflag=rand.nextBoolean();
System.out.println(flag);intnumber=rand.nextlnt(ll);
System.out.println(number);
))
17泛型FXdemo.java
packageday09;publicinterfaceFxdemo<T>(
voidgelFX(Tt);
Stringassume(Tt);Point.java
packageday09;publicclassPonit<T>{〃点
privateTx;
privateTy;publicTgetX()(returnx;
)publicvoidsetX(Tx)(this.x=x;
jpublicTgetY()(returny;
jpublicvoidsetY(Ty)(this.y=y;
jpublicbooleanadd(Ttl){return(boolean)tl;
)
publicvoidtest(Ponit<?>p){
System.ouf.println(p.getX());System.oi/Aprintln(p.getY());
})
FXD.java测试packagecom.chinasofti.eec.test;
importday09.Fxdemo;publicclassFXdimplementsFxdemo<lnteger>(
AOverridepublicvoidgetFX(lntegert)(System.out.printin(t);
)
AOverridepublicStringassume(lntegert){//TODOAuto-generatedmethodstub
return,,helloworldH;publicstaticvoidmain(String[]args)(Fxdemo<lnteger>fx=newFXd();
fx.getFX(IOO);
)}
输出100
Test.javapackagecom.chinasofti.eec.test;
importday09.Ponit;publicclassTest(publicstaticvoidmain(String[]args)(
Ponit<lnteger>p=newPonit<lnteger>();p.setX(10);p.setY(10);
Ponit(String>pl=newPonit<String>();pl.setX("1010n);pl.setY('10010H);
Ponit<Boolean>p2=newPonit<Boolean>();booleanflag=
p2.add(false);System.out.pnntln(pl.getX()+"======,'+pl.getY());
System.out.println(flag);Ponit<Object>p3=newPonit<Object>();
p3.setX(250);
p3.setY(250);Ponit<String>p4=newPonit<String>();p4.setX("helloM);
p4.setY("world");p3.test(p3);
p4.test(p4);输出
1010======10010false
250250helloworld
不建议直接捕获1hrowable因为它不仅仅包含异常还有error类所以一般使用
Expection;
throw和throws的区别:throw用于方法体中,用来抛出一个实际的异常对象throws
用于方法声明处,用来声明该方法可能发生的异
常类型,可以是多个异常类型,用来强制调用该方法时处理这些异常抽象方法也可以使用
throws
编译期异常:文件流异常运行期异常:超出下标
Catch任意捕获先运行后catch,如果没有catch直接从上往下
继承是单一的接口是多重的,实现完一个再去重写每个方法
继承一个类再实现一个接口先走finally再走return
Tran本身定义,自己定义自己Trycatch抛出危险抛给java虚拟机(Exception)
2trycatch名吉构packageday09;
publicclassExeceptionDemo(
publicstaticvoidexecptionTest()(intnuml=10;
intnum2=0;System•oi/t•printin("二二二二运彳亍前二二二二”);
try{System.out.println(numl/num2);〃此时程序没有正常
运仃)catch(ArithmeticExceptione)(
System,oi/t-println("除数不能为Osb");〃此时程序没有结束//e
•printStackTrace();
)System.out.printIn(“二二二二运彳亍后二二二二”);
)pubIicstaticvoidmain(String[]args)(execptionTestQ;
})
输出二二二二运行前二二二二
除数不能为。sb二二二二运彳了后二二二二
3Exception例子packageday09;
publicclassExeceptionDemo(
publicstaticvoidexecptionTest()(intnuml=10;
intnum2=0;System•oi/t,println("====运彳亍前二二二二”);
try(8ystem,out.println(numl/num2);〃此时程序没有正常
jfijj)catch(ArithmeticExceptione)(
System-oi/t-println("除数不能为。sb");〃此时程序没有结
束
//e.printStackTrace();)
System,out.println("====运行后二二二二“);
)
publicstaticvoidmain(String[]args)(execptionTestQ;
输出==运行前==
3:ibyzero
atdav09,ExeceDtionDemo2-execDtionTest(ExeceptionDemo2•iava:9)
atda,09-ExeceDtionDemo2-main(ExeceptionDemo2・iava:18)二二二二运行后
==4数学异常
packageday09;publicclassExeceptionDemo3{
publicstaticvoidexecptionTest()(intnuml=10;
intnum2=0;System•ot/t,println("=二==运彳亍前二=");
try{System.out.println(numl/num2);〃此时程序没有正常
X—Z—运仃
}catch(ArithmeticExceptione)(System.out.printIn("异常信息为:"+e);
)finally(System.out.println("不管怎么样我都会去执行”);
)System.out.println("====运行后====");
{publicstaticvoidmain(String[]args)(execptionTestO;
})
5自定义方法pubIicclassMyExcptionextendsException{
publicMyExcption(Stringmessage)(super(message);
})
6异常区域packageday09;
publicclassRunntimeExection(
publicstaticinttest(){inti=10;
int1;try{
System.out.println(j=i/0);System.out.println("异常区域”);
}catch(Exceptione)(System,ouAprintIn("捕获至IJ的异常");
returni;)finally(
System.out.printin(j=i/10);
System•out.printIn("最终执行”);
)
returni+100;
Jpublicstaticvoidmain(String[]args)(System.out.println(test());
))
输出捕获到的异常
1最终执行
107异常输出
importjava.util.lnputMismatchException;importjava.util.Scanner;
publicclassRunntimeExection2(
publicstaticvoidtest()(Scannerscan=newScanner(System.in);
System.out.printin('请输入一个数');intstr=0;
intnum=O;try{
str=scan.nextlnt();num=str/O;
}/*catch(Throwablee)(System.out.println(e);
}7catch(InputMismatchExceptione)(System.out.println(e);
)catch(ArithmeticExceptione)(System.out.println(e);
}catch(Exceptione)(System.out.println(e);
}("异常后执行”);
)
publicstaticvoidmain(String[]args)(输出
请输入一个数1
iava.IanR.ArithmeticException:;byzero异常后执行8抛出异常
packageday09;publicclassRunntimeExection3(
publicstaticvoidtest(booleanisThrow)throwsException{System.out,printm
(“进入test()");
try{if(isThrow)(
thrownewException("test()抛出异常");
)
System.out.println("test()抛出异常后的try的内容");}catch
(Exceptione)(
System.out.println(e);throwe;
)System.out.printin("异常后的信息”);
Jpublicstaticvoidmain(String[]args)throwsException{test(true);
)}
9finallypackageday09;
publicclassTest(
staticinttest()(intx=1;
try{returnx;
)finally(System,out.printlnCUIIir*);x=x+100;
)
)publicstaticvoidmain(String[]args)(
System•oi/t-printIn(Test-test());
})
10抛出区域packageday09;
publicclassThrowTest(
privateStringid="123”;
privatedoublebanlace;publicThrowTest(Stringid,doublebanlace)(this.id=id;
this.banlace=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省衢州市江山市达标名校2026年初三第二次调研考试英语试题理试题(2020深圳二模)含解析
- 云南省弥勒市朋普中学2026届初三第三次诊断性考试化学试题含解析
- 江苏省镇江市丹徒区江心实验校2026届初三下学期5月月考试题英语试题含解析
- 贵州省贵阳市白云区2025-2026学年初三3月11的英语试题测试卷含解析
- 江苏省盐城市龙冈共同体2026届初三英语试题质量检测试题卷含解析
- 托管劳动合同
- 发热患者疼痛管理指南
- 2026年微针阵列经皮给药系统设计与释药性能研究
- 2026年无人机防撞与自主避障技术产业化
- 2026年调味品用淀粉增稠稳定方案营销
- 2025湖南能源集团电投公司社招39人笔试模拟试题及答案解析
- 中建综合支吊架施工方案
- 员工出行及上下班交通安全培训教育课件
- 四川省党校在职研究生招生考试真题(附答案)
- 自贡市沿滩区邓太片区污水处理厂及配套管网工程项目环评报告
- DB44T 848-2010 工业锅炉水处理剂 腐植酸盐的测定
- 基于人工智能的止痛设备智能优化研究-洞察阐释
- 肿瘤相关性肾病
- 短期雇佣合同协议书
- GB 14930.2-2025食品安全国家标准消毒剂
- 基础医学概论-抗感染药物教学课件
评论
0/150
提交评论