黑马程序员——继承3

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

< 今日心情 >这里还有个小尾巴

在编写程序的时候,经常会遇到各种错误提示,或是在编译的时候,或是在运行的时候。

这些不正常的现象就是异常。

一、 异常

1.什么是异常

在程序运行时遇到的不正常情况。

2.异常体系

Throwable:

Error:

问题严重:如加载的类不存在,内存溢出等。

一般不编写处理代码。

Exception:

在运行时出现的一些情况。

通过try catch finally进行处理。

3.Throwable中的方法:

getMessage()
获取异常信息,返回字符串。
toString()

获取异常类名和异常信息,返回字符串。

printStackTrace()

获取异常类名和异常信息,以及异常出现在程序中的位置。

返回值void。

printStackTrace(PrintStream s)

通常用该方法将异常内容保存在日志文件中,以便查阅。

3.throw和throws

throw:
用在函数内,抛出异常对象。
throws:
用在函数上,后面跟异常类,表示函数会有或可能会有异常对象被抛出

注意:

函数内throw了一个异常必须:(否则编译不能通过)

有对应的throws标示出来。

调用者必须处理或继续抛出。

或自己处理该异常。

try catch finally

例外:如果抛出的是运行时异常(RuntimeException类异常或子类异常)可以不抛出,调用者可以不处理。

函数标识(throws)了一个异常类,如果它被覆盖,覆盖它的方法必须抛出相同的异常或子类异常。

throws了多个异常类时,覆盖它的方法必须抛出那些异常的子集,不能抛出新的异常。

简单的说就是,覆盖函数处理问题的能力必须弱于被覆盖的函数,最多相等。

4.自定义异常

定义一个类继承Exception或其子类。
在构造函数中通过super关键字设置异常信息。
如果遇到该问题时希望程序停止运行,就让该类继承RuntimeException或其子类异常。
class DefaultNumberException extends RuntimeException//自定义了一个无效数字异常
{
	DefaultNumberException(String msg)
	{
		super(msg);
	}
}
class MyMath
{
	public static double chu(double x,double n) throws DefaultNumberException//声明异常
	{
		if(n<=0)
			throw new DefaultNumberException("除数不符合要求。");//抛出一个自定义异常,抛出异常时运行时异常可以不声明
		return x/n;
	}
}

class ExceptionDemo
{
	public static void main(String[] args) 
	{
		double res=0;
		try//捕捉异常
		{
			res=MyMath.chu(10,-5);
		}
		/*
		处理异常
		catch (DefaultNumberException de)
		{
			de.printStackTrace();
		}
		*/
		finally//不论程序是否发生异常,都会执行的代码块。
		{
			System.out.println("哎呀,这道题真难!");
		}
		System.out.println("结果是:"+res);
	}
}


定义异常类的好处:

将正常的程序流程和问题处理部分分离开,增强程序的阅读性。

二、 包(package)

1.概述

对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
格式:package 包名;
类名的全称的是 包名.类名。
包也是一种封装形式。

2.classpath

给JVM提供的一个环境变量。
指定类或者包所在的路径。
当前位置:.;

3.访问权限


4.import

给类安排了包后,就必须使用类的全称了,为了简化书写,可以使用import。
一个类中只能有一个package,可以有多个import。
import只能导入包中的类,不能导入包中的包。
通常写import mypack.Demo;
而不写import mypack.*;

5.Jar包

java的压缩包
方便项目携带。
方便使用,只要在classpath设置jar路径即可。
数据库驱动,SSH框架等都是以jar包体现的。

jar.exe工具对jar的操作

创建jar包

jar -cvf mypack.jar packa packb

查看jar包

jar -tvf mypack.jar [>定向文件]

解压缩

jar -xvf mypack.jar

自定义jar包的清单文件

jar –cvfm mypack.jar mf.txt packa packb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值