1. 基本的

public static void main(String[] args) {
//1. try catch基本用法
{
try{
int[] intA = new int[2];
intA[30] = 5;
}catch(ArrayIndexOutOfBoundsException e){
//在这里捕获到,但是并没有抛出去
System.out.print(e);
}
}
}

结果:

java.lang.ArrayIndexOutOfBoundsException: 30

2. throw

   public static void main(String[] args) {
try{
throw new IOException();
} catch(IOException e){
System.out.println("hello");
e.printStackTrace();
}
}

结果:

hello
java.io.IOException //这一句和下面一句都是e.printStackTrace();打印出来的
at tet.kk.main(kk.java:10)

3. 异常处理方法

   public static void main(String[] args) {
try{
throw new Exception("My Exception");
}catch(Exception e){
System.out.println("getMessage : "+e.getMessage());
System.out.println("getLocalizedMessage: "+e.getLocalizedMessage());
System.out.println("getStackTrace : "+e.getStackTrace());
System.out.println("getCause : "+e.getCause());
System.out.print("printStackTrace :");
e.printStackTrace(); }
}

结果:

getMessage         : My Exception
getLocalizedMessage: My Exception
getStackTrace : [Ljava.lang.StackTraceElement;@6d06d69c
getCause : null
printStackTrace :java.lang.Exception: My Exception
at tet.kk.main(kk.java:10)

4. Finally的用法

   public void step1() {

       for(int i=0;i<5;i++){
try{
step2(i);
}catch(ArithmeticException e){
System.out.println("接收到抛过来的异常,不再往外抛了"+e.getMessage());
}catch(Exception e){
System.out.println("接收到抛过来的异常,接着往外抛"+e.getMessage());
new Exception(e.getMessage());
}
finally{
System.out.println("finally i= "+i+";");
} }
}
public static void main(String[] args) {
new kk().step1();
} //从runtime的异常中随便拿了两个出来测试
void step2(int i) throws ArithmeticException, UnsupportedOperationException{
//System.out.println(i);
if(i==2){
System.out.println("i=2,不进行处理,抛出去");
throw new ArithmeticException("i=2, step2测试");
}else if(i==3){
System.out.println("i=3,不进行处理,抛出去");
throw new UnsupportedOperationException("i=3, step2测试");
}
}

结果:

finally  i= 0;
finally i= 1;
i=2,不进行处理,抛出去
接收到抛过来的异常,不再往外抛了i=2, step2测试
finally i= 2;
i=3,不进行处理,抛出去
接收到抛过来的异常,接着往外抛i=3, step2测试
finally i= 3;
finally i= 4;

JAVA练手--异常的更多相关文章

  1. 20个Java练手项目,献给嗜学如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...

  2. 去哪找Java练手项目?

    经常有读者在微信上问我: 在学编程的过程中,看了不少书.视频课程,但是看完.听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找? 类似的问题,有不少读者问,估计是大部分人的困惑. 练手项 ...

  3. java练手 公约数和公倍数

    Problem D 公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB   描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小 ...

  4. java练手 韩信点兵

    Problem C 韩信点兵 时间限制:3000 ms  |  内存限制:65535 KB   描述 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队 ...

  5. java 练手 Fibonacci数

    Problem B Fibonacci数 时间限制:3000 ms  |  内存限制:65535 KB   描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列 ...

  6. java 练手 谁是最好的Coder

    Problem A 谁是最好的Coder 时间限制:1000 ms  |  内存限制:65535 KB   描述 计科班有很多Coder,帅帅想知道自己是不是综合实力最强的coder. 帅帅喜欢帅,所 ...

  7. 极简易版专家聊天程序--JAVA练手

    呵呵,用JAVA包开发SOCKET连接,是很简单的呢~~~ DailyAdviceServer.java import java.io.*; import java.net.*; public cla ...

  8. JAVA练手--数组

    //数组 public static void main(String[] args) { //1. 数组排序和查找 { int[] intA = {5, 4, 2, 3, 1}; String[] ...

  9. JAVA练手--文件操作

    1. File类 主要作用:用于文件和文件夹的创建.查找.删除等操作 public static void main(String[] args) throws IOException { File ...

随机推荐

  1. 开源应用框架BitAdminCore:更新日志20180903

    索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:https://www.bitadmincore.com 框架源码:https://github.com/chenyi ...

  2. PARTITION BY函数

    1.PARTITION BY 开窗函数, 使用场景,在合同表里,获取所有房源在最新的合同编号.或者获取每个班级每次考试的第一名. 区别聚合函数:对于每个每个分组返回多行,而聚合函数对于每个分组只返回一 ...

  3. MySQL大数据量的导入

    最近在公司备份数据库数据,简单的看了一下.当然我用的是简单的手动备份. 第一:其实最好的方法是直接用: mysqldump -u用户名 -p密码 数据库名 < 数据库名.sql 在linux在操 ...

  4. 【OCP题库】最新CUUG OCP 12c 071考试题库(66题)

    66.(22-19)choose two Examine the structure proposed for the TRANSACTIONS table: Which two statements ...

  5. @media媒体查询

    @media媒体查询 @media screen and (min-width:640px) and (max-width:1920px){/*当屏幕尺寸大于640px时与小于1920时*/ .pub ...

  6. Wireshark系列(从入门到精通的10个干货)

    Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进 ...

  7. express 直接返回HTML文件

    一般情况下用的是模板引擎,如jade: res.render('detail',{ // 使用render() #http://www.expressjs.com.cn/4x/api.html#res ...

  8. Linux 重命名

    例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式中要重命名文件或目录,只需要使用mv命令就可以了,比如说要将一个名为abc的文件 ...

  9. 【表单验证】基于jQuery的高度灵活的表单验证(无UI)

    表单验证是前端开发过程中常见的一个需求,产品需求.业务逻辑的不同,表单验证的方式方法也有所区别.而最重要的是我们要清楚,表单验证的核心原则是--错误信息提示准确,并且尽可能少的打扰/干扰用户的输入和体 ...

  10. JMeterPlugin性能监控

    GUI界面中的plugins manager中的jpgc-Standard set,其中共包含以下的文件: jpgc-dummy jpgc-fifo jpgc-graphs-basic jpgc-pe ...