package com.imooc.test;
public class TryCatchTest {
/**
* @param args
*/
public static void main(String[] args) {
TryCatchTest tct = new TryCatchTest();
// int result = tct.test();
// System.out.println("test()方法执行完毕 返回" + result);
// int result2 = tct.test2();
// System.out.println("test2()执行完毕");
int result = tct.test3();
System.out.println(" test3()执行完毕 result值为 " + result);
}
/**
* divider除数
* result结果
* try_catch 捕获while循环
* divider-- result=result+100/dovider
* 捕获异常 打印输出抛出异常 返回-1
* 否则 返回result
*/
public int test(){
int divider = 10;
int result = 100;
try{
while(divider > -1){
divider--;
result = result + 100/divider;
}
return result;
}catch(Exception e){
e.printStackTrace();
System.out.println("循环抛出异常");
return -1;
}
}
/**
* divider除数
* result结果
* try_catch 捕获while循环
* divider-- result=result+100/dovider
* 捕获异常 打印输出抛出异常 返回-1 result=999
* 否则 返回result
*/
public int test2(){
int divider = 10;
int result = 100;
try{
while(divider > -1){
divider--;
result = result + 100/divider;
}
return result;
}catch(Exception e){
e.printStackTrace();
System.out.println("循环抛出异常");
return result = 999;
}finally{
System.out.println("这是finally!!!");
System.out.println("Result语句是"+result);
}
//System.out.println("这部分能输出吗");
}
public int test3(){
int divider = 10;
int result = 100;
try{
while(divider > -1){
divider--;
result = result + 100/divider;
}
}catch(Exception e){
e.printStackTrace();
System.out.println("循环抛出异常");
}finally{
System.out.println("finally执行");
System.out.println("Result结果为�"+result);
}
System.out.println("test3!执行完finally");
return 1111;
}
}
package com.imooc.test;
public class DrunkException extends Exception {
public DrunkException(){
}
public DrunkException(String message){
super(message);
}
}
package com.imooc.test;
public class ChainTest {
/**
* test1():抛出喝大了异常
* test2():调用test1() 捕获喝大了异常 包装成运行时异常 继续抛出
* main方法调用test2()尝试捕获test2()方法抛出的异常
*/
public static void main(String[] args) {
ChainTest ct = new ChainTest();
try{
ct.test2();
}catch(Exception e){
e.printStackTrace();
}
}
public void test1() throws DrunkException{
throw new DrunkException("和车别开酒");
}
public void test2(){
try {
test1();
} catch (DrunkException e) {
// TODO Auto-generated catch block
//包装成运行时异常进行处理
//方法一 异常链的写法
RuntimeException newExc =
new RuntimeException(e);
// newExc.initCause(e);
throw newExc;
//方法二 异常链的写法
// RuntimeException newExc =
// new RuntimeException("司机一滴酒 亲人两行泪");
// newExc.initCause(e);
// //initCause()追溯原始异常发生的位置
// throw newExc;
}
}
}