Java 程序设计基础与实践 6

Java类库中定义了异常类,它们都是Throwable的子类。Throwable类派生出了两个子类,分别是Error和Exception类。

Exception又分为两类:运行时异常和编译时异常。

异常中的常用方法:

1.getMessage():返回Throwable对象的详细信息,如果没有则返回null。

2.toString():返回Throwable对象的类型和性质。

异常处理

介绍:当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个兑现多个方法可以捕获到这个异常并可以对其进行处理。而异常处理机制并不能真正的修复程序bug,只能说时防止程序崩溃,要修复程序的bug时我们在catch语句中对异常进行一些处理。

异常关键字

try catch throw throws finally

try--监听,可能抛出异常的代码放在try内,当try语句块内发生异常时就被抛出。

catch-捕获异常。catch用来捕获try语句中发生的异常。

throw-抛出异常

throws-方法之后,声明该方法可能出现的异常。

finally-异常处理过程中最后被执行的部分,无论程序是否发生异常,finally中的代码块都将被执行。(通常放置一些释放资源或关闭对象的代码)。

try代码块中发生了异常程序转而就会进行catch代码块,不会再向下继续运行try代码块。

发生以下三种情况时finally代码块不会运行

1.finally代码块中发生了异常。

2.在前面的代码中使用System。exit()语句退出了JAVA虚拟机。

3。程序所在的线程死亡。

使用throws关键字抛出异常

Java通过shrows子句声明方法可抛出异常,throws语法如下

数据类型 方法名(形参列表) throws 异常类1,异常类2,....{

方法体

}

表示相应方法不处理异常,而交给方法的调用者处理。

上图构造方法div()来用throws关键字抛出ArithmeticException异常,并在调用时处理。(这里主方法使用try-catch进行了异常处理,所以程序可以编译通过。

使用throw关键字抛出异常

与throws不同,throw用于方法体内,并且抛出的是一个异常类对象。throws用于方法签名上,可以抛出多种异常。如果throw关键字抛出异常后,还需要使用throws关键字向方法外抛出,或使用ttry-catch对异常进行处理。需要注意的是,如果throw抛出的是Error,RuntimeException或他们的子类异常对象,则无需使用throws,也无需使用try-catch。使用方法如下

throw new 异常对象();

自定义异常

步骤

1.创建自定义异常类并继承Exception基类(如果定义Runtime异常类,则继承RuntimeException)

2.在方法中通过throw关键字抛出异常对象。

3.如果在当前抛出异常的方法中处理异常,可以使用try-catch处理,否则在方法后要用throws关键字抛出异常,继续进行下一步操作

4.在调用可能会出现异常方法的语句处进行捕获并进行处理异常。

字符串的相关类

JAVA定义了String StringBuffer StringBuilder三个类来封装字符串2,并提供了一系列操作字符串的方法。   String类表示不可变的字符串,一旦被创建,只能被销毁。

1.使用直接赋值初始化

String str1="1000phone";

String str2="1000phone";

String str3="1000"+"phone";

以上赋值就是直接赋值,字符串常量赋值给String变量时,JVM先在常量池中寻找该字符串,如果找到,则立刻返回引用,如果未找到,则在常量池中创建该字符串对象并返回引用;使用这种方法,字符串会被放入常量池中。(为了节省内存空间,构建了常量池)

当比较三个的值时(用==时,因为String的equal类被默认重写),会返回true也就是相等,说明他们三个的地址相同。

2.使用构造方法赋值

String类可以直接调用构造方法。常用构造方法如下

String str1="1000phone";

String str2=new String("1000phone");

String str3=new String("1000phone");

这个时候用=比较三个成员变量时返回的是false,也就是不相等,说明他们三个的地址不相同。

这是因为用new关键字在堆空间新开辟了内存,这块内存存放字符串的引用。所以三个地址不同。

String类常见操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值