JAVA练手--异常
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练手--异常的更多相关文章
- 20个Java练手项目,献给嗜学如狂的人
给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...
- 去哪找Java练手项目?
经常有读者在微信上问我: 在学编程的过程中,看了不少书.视频课程,但是看完.听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找? 类似的问题,有不少读者问,估计是大部分人的困惑. 练手项 ...
- java练手 公约数和公倍数
Problem D 公约数和公倍数 时间限制:1000 ms | 内存限制:65535 KB 描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小 ...
- java练手 韩信点兵
Problem C 韩信点兵 时间限制:3000 ms | 内存限制:65535 KB 描述 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队 ...
- java 练手 Fibonacci数
Problem B Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列 ...
- java 练手 谁是最好的Coder
Problem A 谁是最好的Coder 时间限制:1000 ms | 内存限制:65535 KB 描述 计科班有很多Coder,帅帅想知道自己是不是综合实力最强的coder. 帅帅喜欢帅,所 ...
- 极简易版专家聊天程序--JAVA练手
呵呵,用JAVA包开发SOCKET连接,是很简单的呢~~~ DailyAdviceServer.java import java.io.*; import java.net.*; public cla ...
- JAVA练手--数组
//数组 public static void main(String[] args) { //1. 数组排序和查找 { int[] intA = {5, 4, 2, 3, 1}; String[] ...
- JAVA练手--文件操作
1. File类 主要作用:用于文件和文件夹的创建.查找.删除等操作 public static void main(String[] args) throws IOException { File ...
随机推荐
- asp.net Frameset框架集的嵌套使用
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Frame.aspx.cs& ...
- Python验证实现登陆功能以及用户锁定(文件存储)
废话不多说先交代码(只是一个简单的验证):#!/usr/bin/env python #-*- coding:utf8 -*- # Structured program ‘#’是注释 # Functi ...
- sql 常用基础查询
*查询第一条记录:select top 1 * from tablename *随机查询N条记录:select top N * from table order by newid( ...
- Kafka与.net core(二)zookeeper
1.zookeeper简单介绍 1.1作用 zookeeper的作用是存储kafka的服务器信息,topic信息,和cunsumer信息.如下图: 而zookeeper是个什么东西呢?简单来说就是一个 ...
- 2、Windows下安装配置Redis
windows下redis软件开源安装包挂载到github上,下面将详细介绍如何在windows下安装redis服务器 下载地址:https://github.com/MSOpenTech/redis ...
- 和我一起学python
近来python越来越火,很多人都出了教程,我也来出一个凑凑热闹吧. pycharm激活 http://idea.lanyus.com/ https://blog.csdn.net/u01404481 ...
- Hello world(世界,你好)
每一个学习语言的小白,第一行代码就是向世界问好,话不多,大圣要开始自己的代码人生了! 一.字符串是可以相加的,比如:print("hello"+"world") ...
- java -io字符流FileWrite操作演示
FileWriter字符输出流演示: /* * FiileWriter 字符流的操作 * FileWriter 的构造方法 可传递 File类型 还可以传递String类型 * * 方法 : * wr ...
- sql注入原理详解(一)
我们围绕以下几个方面来看这个问题: 1.什么是sql注入? 2.为什么要sql注入? 3.怎样sql注入? 1.什么是sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- eclipse首次使用的基本设置
最近,一些刚开始学习Java的朋友使用eclipse遇到了一些编码导致的问题向我询问,那就总结一下首次安装eclipse后我们大体应该设置哪些基本东西吧~大神们呐就不用看啦. 一.修改工作空间默认编码 ...