java学习笔记(七)

泛型  放射机制

 //定义一个类

class Gen<T>

{private T o;

//构造函数

public Gen(T a){o=a;}

//得到T的类型名称

public void showTypeName()

{System.out.println("类型是:"+o.getClass().getName());

//通过反射机制,我们可以得到T这个类型的很多信息

//比如得到成员函数名

Method []m=o.getClass().getDeclaredMethods();

//打印

for(int i=0;i<m.length;i++)

{System.out.println(m[i].getName());

}

}}


 

  • 异常处理

当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用...)时,java就会用异常对象来描述

java中用两种方法处理异常:

  1. 在发生异常的地方直接处理
  2. 将异常抛给调用者,让调用者处理

异常分类:

  1. 检查性异常:java.lang.Exception
  2. 运行期异常:java.lang.RuntimeException
  3. 错误:java.lang.Error

 

 

 

 

 

 

package com.test;
import java.io.*;
import java.net.*;
public class Test3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//检查异常 编译器能检查出
		//1.打开文件
		FileReader fr = null;
		try {
		    fr=new FileReader("c:\\aa.txt");
			//在出现异常的地方就终止执行代码,然后进入到catch语句
			//如果有多个catch语句,则进去匹配异常的那个catch语句
			//go输出不了 进入catch
			System.out.println("go");
			Socket s=new Socket("619.135.169.125",80);
		} 
		//最大捕获 简单好用捕获所有异常
		catch (Exception e) {
			System.out.println("message:"+e.getMessage());
			e.printStackTrace();//这个更好使 会告诉出错的行数
		}
		
		//最小捕获 分成不同的异常
		//catch(FileNotFoundException e){
		//把异常的信息输出,利于排除bug
		//e.printStackTrace();
//		}catch(IOException e2)
//		{
//			e2.printStackTrace();
//		}
		finally{
			System.out.println("进入finally");
			//这个语句块,不管有没有异常都会执行
			//一般说,把需要关闭的资源(文件,连接,内存)
			if(fr!=null)
			{
				try{
					fr.close();
				}catch(Exception e)
				{
					e.printStackTrace();
				}
			}
		}
		
		System.out.println("ok");
		
		//2.连接一个61.135.169.125 ip的端口号4567
		//Socket s=new Socket("61.135.169.125",80);
		
		//运行异常 编译器不能检查出
		//int a =4/0;
		//int arr[]={1,2,3};
		//System.out.println(arr[10]);
		
		
	}

}


 

package com.test;
import java.io.*;
public class Test4 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Father father = new Father();
		father.test1();
	}
}

class Father
{
	private Son son =null;
	public Father()
	{
		son = new Son();
	}
	public void test1()
	{
		System.out.println("1");
		try{
			son.test2();
		}catch(Exception e)
		{
			System.out.println("父亲在处理");
			e.printStackTrace();
		}
	}
}

class Son
{	public void test2() throws Exception
	{
		FileReader fr=null;
		fr = new FileReader("d:\\dafd.txt");
		System.out.println("1");
	}
}


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值