JavaSE各阶段练习题----异常

异常作业:

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

异常是程序执行期间中断指令的正常流程的事件。

异常继承体系:

JavaSE各阶段练习题----异常_第1张图片

 

  1. 简述异常的处理方式?
  1. 捕获异常。即使用try-catch-finally
  2. 使用throws抛出异常
  3. 使用throw抛出异常,(到目前为止的所有异常类对象全部都是JAVA虚拟机自动实例化的,但有时用户想能亲自进行异常类对象的实例化操作,自己手动抛出异常,那么此时需要依靠throw关键词来完成。)

 

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

throw:用于抛出异常类的实例

throws:用于声明抛出异常,表示该类不处理,让方法调用者处理

 

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

当你用多catch语句时,记住异常子类必须在它们任何父类之前使用是很重要的。这是因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,如果子类在父类后面,子类将永远不会到达。

 

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

在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch字句就会执行,然后控制就会进入到finally块。

也就是说不管程序是否发生异常,还是在try块和catch块中使用return语句,finally块都会执行。

 

  1. Throwable类的常见方法及方法描述?

 

 

8.自定义异常的步骤?

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

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

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

4.在出现异常方法的调用者中捕获并处理异常

 

 

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

   import java.io.*;

  public class C11{

       public static void main(String args[]) {

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

                     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!");

 }

              }

           }

}

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

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

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

finally {

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

}

 

9 猜数游戏,随机生成一个1 到100之间的整数,从键盘输入数字进行猜数,一共可以猜5次,如果猜小了在控制台输出猜小了,如果猜大了,在控制台输出猜大了,如果猜

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

package com.henu;

 

import java.util.Scanner;

 

public class Demo01 {

 

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

boolean flag = true;

int count = 0;

int y = (int)(1+Math.random()*100);

System.out.println(y+"->");

while (flag) {

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

String x = sc.nextLine();

if (!x.matches("^([1-9][0-9]{0,1}|100)$")) {

System.out.println("输入的不是数字或数字不合服规则,请重新输入!");

System.out.println("此次不计次数,请正确输入!");

}else {

int z = Integer.parseInt(x);

if (z > y) {

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

count++;

System.out.println("你还有"+(5-count)+"次机会");

flag = true;

}else if (z < y) {

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

count++;

System.out.println("你还有"+(5-count)+"次机会");

flag = true;

}else {

System.out.println("猜对了,结束游戏!");

flag = false;

}

if (count == 5) {

System.out.println("机会用完了,游戏结束!");

}

}

 

 

}

 

 

}

 

}

 

 

正则作业:

 

课上代码

 

/*

 * 如(010-38389438)

 */

public class Demo04_验证电话号码 {

 

public static void main(String[] args) {

String phoneNumber = "010-38389438";

boolean b = phoneNumber.matches("\\d{3,4}-\\d{7,8}");

System.out.println(b);

}

 

}

 

/*

 * 只能是字母开头的数字、字母或下划线的组合

 */

public class Demo06_验证用户名 {

 

public static void main(String[] args) {

 

String name = "abc1314";

boolean b = name.matches("[a-zA-Z]+[\\w|_]*");

System.out.println(b);

 

}

 

}

/*

 * (192.168.1.1)

 */

public class Demo07_验证IP地址 {

 

public static void main(String[] args) {

 

String IP = "192.168.1.1";

boolean b = IP.matches("^((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}$");

System.out.println(b);

 

}

 

}

 

/*

 * http://www.baidu.com

 */

public class Demo08_验证网址 {

 

public static void main(String[] args) {

 

String url = "http://www.baidu.com";

boolean b = url.matches("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]");

System.out.println(b);

}

 

}

/*

 * (100以内)

 */

public class Demo09_验证年龄 {

public static void main(String[] args) {

String str = "98";

boolean b = str.matches("^(?:[1-9]?\\d|100)$");

System.out.println(b);

}

}

 

 

你可能感兴趣的:(【JAVA】JAVA基础)