Homework20191111

一、异常作业:

1. 简述什么是异常、异常的继承体系?

java程序运行过程中,出现的不正常的情况,出现的错误,称为异常.

  1. 简述异常的处理方式?

可以进行跳转,捕获以程序结束,也可以抛出.

  1. throw和throws关键字的使用位置和格式?

throw是对异常对象的抛出,一般放在方法中.throws是对异常的声明,一般放在方法名后边.

throw new 异常名称()        throws 异常类名

  1. 多个catch处理的注意事项?

单个try块能有许多catch块,当try块有“可能引起不同类型异常”的语句时,多个catch块是必须的。

异常捕获的先后顺序应该“从小到大”。

  1. 简述finally关键字的特点和作用?

无论发生了什么,finally中的代码一定会被执行,除非虚拟机关了.

代码中有必须要执行的代码(比如释放资源)的情况。

  1. Throwable类的常见方法及方法描述?
  1. toString() 输出该异常的类名。
  2. getMessage() 输出异常的信息,需要通过构造方法传入异常信息(例如病态信息)。
  3. printStackTrace() 打印栈信息。
  1. 自定义异常的步骤?

定义一个异常类继承Exception或RuntimeException

重写父类的方法

8 首先预测下列程序的运行结果,然后编译、执行以验证你的预测:

   import java.io.*;

  public class C11{

       public static void main(String args[]) {

              for(int i = 0; i < 4;i++) {

//这里是个for循环,一次输出一个异常.Exception可以接收所有异常

                     int k;

                     try {

                           switch( i ) {

                                   case 0:       

                                          int zero = 0;

                                          k = 911 / zero;

                                          break;

                                   case 1:       

                                          int b[ ] = null;

                                          k = b[0];

                                          break;

                                   case 2:      

                                          int c[ ] = new int[2];

                                          k = c[9];

                                          break;

                                   case 3:       

                                          char ch = "abc".charAt(99);

                                          break;

                              }

                     }catch(Exception e) {

                            System.out.println("\nTestcase #" + i + "\n");

                            System.out.println(e);

                 }finally {

              System.out.println("Exception Test Finished!");

             }

              }

           }

}

运行结果:

 

Testcase #0

 

java.lang.ArithmeticException: / by zero

 

Testcase #1

 

java.lang.NullPointerException

 

Testcase #2

 

java.lang.ArrayIndexOutOfBoundsException: 9

 

Testcase #3

 

java.lang.StringIndexOutOfBoundsException: String index out of range: 99

  1. 将上述程序中catch(Exception e)更改为catch(ArithmeticException e),预测程序运行的结果并验证之。

运行结果:

 

Testcase #0

 

java.lang.ArithmeticException: / by zero

Exception in thread "main" java.lang.NullPointerException

at com.xiongluoluo.homework.Test08.main(Test08.java:16)

 

  1. 将上述程序中catch(Exception e)更改为catch(NullPointerException e),预测程序运行的结果并验证之。

运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero

at com.xiongluoluo.homework.Test08.main(Test08.java:12)

(i匹配到0的时候,一直报出算术异常,而且无法解决,故而下面的代码根本运行不了)

 

(4)在(3)的程序中添加一些语句,使得程序能够输出Exception Test Finished!的信息。(提示:使用finally语句)

catch块后面加finally {

              System.out.println("Exception Test Finished!");

             }

9.

import java.util.Random;

import java.util.Scanner;

 

/*猜数游戏,随机生成一个1 到100之间的整数,从键盘输入数字进行猜数,一共可以猜5次,

如果猜小了在控制台输出猜小了,如果猜大了,在控制台输出猜大了,如果猜

对了在控制台输入 恭喜你猜对了,并结束游戏。 注意当输入的不是数字或数字不合服规则时,不算次数*/

public class Test09 {

 

public static void main(String[] args) {

guessNumberGame();

 

}

 

public static void guessNumberGame() {

Scanner sc = new Scanner(System.in);

Random r = new Random();

int number = r.nextInt(100) + 1;

int count = 0;

System.out.println("******欢迎来到猜数字小游戏******");

while(true) {

if(count >= 5) {

System.out.println("您的游戏次数用完了哦");

break;

}

System.out.println("请输入您猜的数字:");

 

String gn= sc.nextLine();

 

String regex = "[1-9][0-9]";

if(gn.matches("\\D*")) {

System.out.println("您录入的数字不合法,请重新录入.");

}else if(gn.matches(regex) || gn.matches("100")) {

int guessNumber = Integer.parseInt(gn);

if(guessNumber > number) {

System.out.println("猜大了");

count++;

}else if(guessNumber < number) {

System.out.println("猜小了");

count++;

}else {

System.out.println("恭喜您,猜对了!");

break;

}

}else{

System.out.println("您录入的数字不合法,请重新录入.");

}

}

}

 

}

 

二、正则作业:

课上代码

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值