package test;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class 异常处理 {
/**
* 作者:钟志钢
* 功能:java异常及处理
* 时间:2013-1-27
* 1, 分类:(都 是java.lang.Throwable的子孙类)
* 检查性异常(java.lang.Exceptoin --> java.lang.Throwable),出现时不能被编译
* 运行时异常(java.lang.RuntimeException-->java.lang.Exception--> java.lang.Throwable),
* 错误(java.lang.Error --> java.lang.Throwable),很少出现,bug,内在耗尽,由运行环境处理
* 2, 异常处理方法:捕获,抛出
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//检查性异常
//打开文件
//FileReader fr = new FileReader("d:/aaa/my.txt");
//连接到一个端口
/**
* 关于IP
* 命令行中:ping www.baidu.com 会得到关于当前网址的一些信息
* tracert www.souhu.com 得到路由的一些相关信息
* route parint 列出路由信息
* netstat -an 本机的端口信息
*/
//Socket s = new Socket("192.168.1.23",78);
//运行时异常:比如零被除,数组越界,入参不满足规范等
//int a = 4/0;
// int arr [] = new int[]{};
// System.out.println(arr[0]);
//异常处理:捕获与抛出
//1,捕获:try...catch,捕获并在此中止程序,进入到catch
// FileReader fr = null;
// try {
// fr = new FileReader("d:/aaa/my.txt");
// } catch (FileNotFoundException e) {//最小捕获:只捕获FileNotFound异常
// // 输入异常信息,利于排bug或者在此进行备用方案
// e.printStackTrace();
// }finally{
// if(fr != null){
// try {
// fr.close();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// }
// try {
// Socket s = new Socket("192.1688.1.23",78);
// } catch (Exception e) {//捕获所有异常
// // TODO Auto-generated catch block
// e.printStackTrace();
// }//关于finally,万能保险,当出现异常,有没有对应的catch时,就会被执行
// //也有不执行的情况:finally模块异常\线程死亡\关闭CPU\前面代码中调用了System.exit(0);
// finally{
// //通常用于关闭一些流,资源,链接内存
// }
//2,抛出.直接在方法的后面加入:throws Exception
Father f = new Father();
//f.testFather();
}
}
class Father {
private Son son ;
public Father(){
son = new Son();
}
// public void testFather(){
// try {//Father调用Son的方法,所以帮其处理异常
// son.testson();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
public void testFather ()throws Exception{//它也可能 不处理,继续抛给其调用都,直到最后抛给虚拟机
son.testson();
}
}
class Son{
public void testson ()throws Exception{
Socket s = new Socket("192.1688.1.23",78);
}
}