0
点赞
收藏
分享

微信扫一扫

Java第八章总结

归零者245号 2022-04-30 阅读 65

例8.1

public class jjj666 {                            //创建类jjj666
public static void main(String[] args) { //主方法
int result = 3 / 0; //定义int型变量并赋值
System.out.println(result); //将变量输出
}
}

 例8.2

package jjj666;
public class jjj66 { //创建类jjj66

public static void main(String[] args) { //主方法
String str = "lili"; //定义字符串
System.out.println(str + "年龄是:"); //输出的提示信息
int age = Integer.parseInt("20L"); //数据类型的转换
System.out.println(age); //输出信息
}
}

 例8.3

package jjj666;
public class FootballTeam {
private int playerNum; //定义球员数量
private String teamName; //定义“球员名称”
public FootballTeam()
{
//寻找教练类
class.forName("com.mrsoft.Coach");
}

public static void main(String[] args) {
// TODO Auto-generated method stub
FootballTeam team = new FootballTeam();//创建对象team
team.teamName = "com.mrsoft";//初始化对象
team.playerNum = 19;//初始化对象
System.out.println("\n球队名称: " + team.teamName + "\n" + "球员数量: " + team.playerNum + "名");

}

8.3 捕捉处理异常
在处理非运行时异常时,提到了系统会自动为非运行时异常提供两种解决方案,一种是使用throws关键字,一种是使用try...catch代码块。

try...catch代码块代码块主要用来对异常进行捕捉并处理。在实际使用时,改代码块还有一个可选的finally代码块。

例8.4

package jjj666;
public class jjj66 { //创建类

public static void main(String[] args) { //主方法
try {
String str = "lili"; //定义字符串
System.out.println(str + "年龄是:"); //输出的提示信息
int age = Integer.parseInt("20L"); //数据类型的转换
System.out.println(age); //输出信息
} catch (Exception e) { //catch代码块用来获取异常信息
e.printStackTrace(); //输出异常性质
}
System.out.println("program over"); //输出信息
}
}

例8.5 

 

package jjj666;
public class jjj66 { //创建类

public static void main(String[] args) { //主方法
try { //try语句包含可能出现异常的程序代码
String str = "lili"; //定义字符串
System.out.println(str + "年龄是:"); //输出的提示信息
int age = Integer.parseInt("20L"); //数据类型的转换
System.out.println(age); //输出信息
} catch (Exception e) { //catch代码块用来获取异常信息
e.printStackTrace(); //输出异常性质

} finally

System.out.println("program over"); //输出信息
}
}

 

例8.6 

package jjj666;
public class jjj66 {
static void pop() throws NegativeArraySizeException {
//定义方法并抛出NegativeArraySizeException异常
int[] arr = new int[-3]; //创建数组
}

public static void main(String[] args) { //主方法
// TODO Auto-generated method stub
try { //try语句处理异常信息
pop(); //调用pop()方法
} catch (NegativeArraySizeException e) {
System.out.println("pop()方法抛出的异常"); //输出异常信息
}

}

}

例8.7 

package jjj666;
public class jjj66 {

public static void main(String[] args) { //主方法
// TODO Auto-generated method stub
int num1 = 25;
int num2 = 0;
int result;
if (num2 == 0) //判断num2是否等于0,如果等于0,抛出异常
{
//抛出ArithmeticException异常
throw new ArithmeticException("这都不会,小学生都知道:除数不能是0!!!");
}
result = num1 / num2; //计算int1除以int2的值
System.out.println("两个数的商为: " + result);
}

}

8.5 自定义异常
int age = -50;

System.out.println("王师傅今年  "+age+"  岁了!");

 在程序中使用自定义异常类,大体可分为以下几个步骤。

(1)创建自定义异常类。

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

(3)如果在当前抛出异常的方法中处理异常,可以使用try...catch代码块捕获并处理,否则,在方法的声明处通过throws关键字指明要抛给方法调用者的异常,继续进行下一步操作。

(4)在出现异常方法的调用者中捕获并处理异常
例8.8

public class MyException extends Exception {   //创建自定义异常,继承Exception类
public MyException(String ErrorMessage) { //构造方法
super(ErrorMessage); //父类构造方法
}
}
public class Tran { 
//定义方法,抛出自定义的异常
static void avg(int age) throws MyException {
if (age < 0) { //判断方法中参数是否满足指定条件
throw new MyException("年龄不可以使用负数"); //错误信息
} else {
System.out.println("王师傅今年 " + age + "岁了!"); //输出信息
}
}

public static void main(String[] args) { //主方法
// TODO Auto-generated method stub
try { //try代码块处理可能出现异常的代码

avg(-50);
} catch (MyException e) {
e.printStackTrace();
}
}

}

 

8.6 异常的使用原则
编写代码处理某个方法可能出现的异常时,可遵循以下原则:

(1)不要过度使用异常。虽然通过异常可以增强程序的健壮性,但如果使用过多不必要的异常处理,可能会影响程序的执行效率。

(2)不要使用过于庞大的try...catch块。在一个try块中放置大量的代码,这种写法看上去“很简单”,但是由于try块中的代码过于庞大,业务过于复杂,会造成try块中出现异常的可能性大大增加,从而导致分析异常原因的难度也大大增加。

(3)避免使用catch(Exception e)。因为如果所有异常都采用相同的处理方式,将无法对不同异常分情况处理;另外,这种捕获方式可能将程序中的全部错误、异常捕获到,这时如果出现一些“关键”异常,可能会被“悄悄地”忽略掉。

(4)不要忽略捕捉到的异常,遇到异常一定要及时处理。

(5)如果父类抛出多个异常,则覆盖方法必须抛出相同的异常或其异常的子类,不能抛出新异常。
 

 

举报

相关推荐

0 条评论