Java异常处理方式-练习题

涎涎原创约 1234 字大约 4 分钟...JavaJava

211-Java异常处理方式-练习题 .md

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

编写应用程序,从命令行传入两个整型数作为除数和被除数。

1、编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。 [必作题] 在命令行输入不同的参数时能输出如下各种结果:

	1.1 在命令行输入 <零个参数>
	1.2 在命令行输入   1  和  2
	1.3 在命令行输入  1  和   3a
	1.4 在命令行输入  1  和   0 
package com.tencent.chapter08.练习;

/**
 * 1、编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。 [必作题]
在命令行输入不同的参数时能输出如下各种结果:
		1.1 在命令行输入 <零个参数>
		1.2 在命令行输入   1  和  2
		1.3 在命令行输入  1  和   3a
		1.4 在命令行输入  1  和   0 
 */
public class _01 {

	public static void main(String[] args) {
		try{
			//参数一:String
			String str1 = args[0];
			//参数二:String
			String str2 = args[1];
			
			//String -> int
			int num1 = Integer.parseInt(str1);
			int num2 = Integer.parseInt(str2);
			
			//求商
			int result = num1 / num2;
			
			//输出结果
			System.out.println(result);
		}
		catch(ArrayIndexOutOfBoundsException e)
		{
			e.printStackTrace();
			//System.out.println("参数个数不正确,一定要传入两个参数");
		}
		catch(NumberFormatException e)
		{
			e.printStackTrace();
			//System.out.println("参数必须为整数");
		}
		catch(ArithmeticException e)
		{
			e.printStackTrace();
			//System.out.println("算数异常,除数不能为0");
		}
		finally
		{
			System.out.println("总是被执行");
		}
	}
	
}

编写一个检查给定的数字的数据类型是否为byte的程序

2、编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息(知识点:自定义异常) [选作题]

	步骤1:创建用户自定义异常类ByteSizeException
	步骤2:在main方法中编写逻辑代码
	步骤3:运行并测试
	效果如图:
package com.tencent.chapter08.练习;

import java.util.Scanner;

/**
 * 2、编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息(知识点:自定义异常) [选作题]
		步骤1:创建用户自定义异常类ByteSizeException
		步骤2:在main方法中编写逻辑代码
		步骤3:运行并测试
		效果如图:
 */
public class _02 {

	public static void throwException() throws ByteSizeException {
		
		Scanner scanner = new Scanner(System.in);
		int b = scanner.nextInt();
		
		//判断byte是否在-128~127之间
		if(b < -128 || b > 127)
		{
			//System.out.println("输入的数字不是byte类型");
			throw new ByteSizeException("输入的数字不是byte类型");
		}
		else
		{
			System.out.println("输入的数字是一个byte类型");
		}
	}
	
	//步骤2:在main方法中编写逻辑代码
	public static void main(String[] args){
		
		try {
			throwException();
		} catch (ByteSizeException e) {
			e.printStackTrace();
		}
	}
}
//步骤1:创建用户自定义异常类ByteSizeException
class ByteSizeException extends Exception
{
	//用于保存异常信息的属性
	private String message;
	
	//构造函数
	public ByteSizeException(String message)
	{
		this.message = message;
	}
	
	//对外公共的方法获取异常信息
	public String getMessage()
	{
		return message;
	}
}

编写一个方法,比较两个字符串

3、编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常, 并在适当时候触发异常,然后编写一个程序捕获该异常。 [必作题]

package com.tencent.chapter08.练习;
/**
 * 3、编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,
 *    并在适当时候触发异常,然后编写一个程序捕获该异常。 [必作题]
 */
public class _03 {

	//编写一个方法,比较两个字符串
	public static boolean compare(String str1,String str2) throws NullPointerException
	{
		//并在适当时候触发异常
		if(str1 == null || str2 == null)
		{
			throw new NullPointerException("比较的字符串对象不能为null");
		}
		
		if(str1.equals(str2))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	//然后编写一个程序捕获该异常
	public static void main(String[] args) {
		try
		{
			boolean result = compare(null, "abc");
			System.out.println(result);
		}
		catch(NullPointerException e)
		{
			//e.printStackTrace();
			System.out.println(e.getMessage());
		}
	}
	
}

分割线


相关信息

以上就是我关于 Java异常处理方式-练习题 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4