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. 查找 SQL SERVER 所有表记录数

    -- 所有表的记录数 SELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ...

  2. Linux tomcat 添加开机启动

    准备工作:将 jdk-7u80-linux-x64.tar.gz 解压到到 /usr/local/目录下将 apache-tomcat-7.0.82.zip 解压到/opt/etcoud目录下,并切换 ...

  3. c# 图片等比缩略

    public Bitmap getnew(Image bit, int TargetWidth, int TargetHeight)//beishu参数为放大的倍数.放大缩小都可以,0.8即为缩小至原 ...

  4. JavaScript 函数声明,函数表达式,匿名函数的区别,深入理解立即执行函数(function(){…})()

    function fnName(){xxxx}; // 函数声明:使用function关键字声明一个函数,在指定一个函数名. //例如:(正常,因为 提升 了函数声明,函数调用可以在函数声明之前) f ...

  5. Eclipse署动态web项目方法

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  6. day 11课后作业

    # -*- coding: utf-8 -*-# @Time : 2019/1/3 20:03# @Author : Endless-cloud# @Site : # @File : day 11 课 ...

  7. 49.RocketMQ 双主搭建(本文非EamonSec原创)

    声明:本文非EamonSec原创,copy自网上下载的某个个文件 1.RocketMQ介绍 1.1. 简介 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 ...

  8. 常用的re正则

    常用的正则表达式: 用户名:/^[a-z0-9_-]{3,16}$/ 密码:/^[a-z0-9_-]{6,18}$/ 十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 电子邮 ...

  9. ubuntu 14.04网卡配置以及关闭防火墙

    一.Ubuntu网卡配置如下: 在文件/etc/network/interfaces中进行以下配置 auto lo iface lo inet lookback auto eth0 iface eth ...

  10. vs2010启动越来越慢解决方法

    自己用的电脑中vs2010启动总是越来越慢,耽误时间,用了下面的方法试了一下,效果还不错,如果你的vs2010也是,遇到这种问题不妨试一试: 1.重新设置了vs2010的环境(在vs2010命令提示符 ...