精华内容
下载资源
问答
  • java异常处理练习题

    2018-08-17 11:10:20
    java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验
  • Java异常练习题(带答案)

    千次阅读 2016-06-27 16:35:19
    ps:案例来源于毕向东老师Java基础教程大家可以从我的资源库里面下载:

    ps:案例来源于毕向东老师Java基础教程

    大家可以从我的资源库里面下载:http://download.csdn.net/detail/xinghuo0007/9560938

    展开全文
  • Java异常的一些练习题汇总(掌握)

    多人点赞 2020-11-28 18:24:30
    前言: 我找了3个比较典型的Java异常题, 仅供参考: 例题1: 从命令行得到5个整数,放入一整型数组,然后打印输出,要求: 如果输入 数据不为整数,要捕获Integer.parseInt()产生的异常, 显示“请输入整数”,捕获...

    前言: 我找了3个比较典型的Java异常题, 仅供参考:

    例题1:
    从命令行得到5个整数,放入一整型数组,然后打印输出,要求: 如果输入 数据不为整数,要捕获Integer.parseInt()产生的异常, 显示“请输入整数”,捕获输入参数pi足5个的异常(数组越界)。 显示"请输入至少5个整数"

    代码如下:

    public class T1 {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            //输入5个整数
            System.out.println("请输入5个整数:");
            int [] arr = new int[5];
            try{
                for (int i = 0; i <=arr.length ; i++) {
                    int pi = input.nextInt();
                    arr[i]=pi;
                }
                for (int i1 : arr) {
                    System.out.println(i1);
                }
            }catch (InputMismatchException e){
                System.out.println("请输入整数");
                e.printStackTrace();
            }catch (ArrayIndexOutOfBoundsException e){
                System.out.println("请输入5个整数,数组越界");
                e.printStackTrace();
            }finally {
                System.out.println("程序结束!");
            }
        }
    }
    

    输出1:在这里插入图片描述
    输出2:
    在这里插入图片描述


    例题2: 写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException, 显示异常信息a,b,c "不能构成三角形,如果可以构成则显示三角形三个边长, 在主方法中得到命令行输入的三个整数。调用此方法,并捕获异常。

    代码如下:

    public class T2 {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入三条边长a,b,c:");
            int a = input.nextInt();
            int b = input.nextInt();
            int c = input.nextInt();
            try{
                triangle(a,b,c);
            }catch (IllegalArgumentException e){
               e.printStackTrace();
            }
        }
        // 定义三角形方法
        public static void triangle(int a, int b, int c) throws IllegalArgumentException {
            if ((a+b)>c&&(a+c)>b&&(b+c)>a){
                System.out.println("a,b,c 可以构成三角形,三边长度分别是:"+a+","+b+","+c);
            }else{
                throw new IllegalArgumentException(a+","+b+","+c+"不能构成三角形");
            }
        }
    }
    

    输出1:
    在这里插入图片描述
    输出2:
    在这里插入图片描述


    例题3: 自定义异常类:三角形的判断和面积
    自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(x,y,z)分别 给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常SjException,否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。

    代码如下:

    // 文件1:
    class Sanj {
        // 定义三边
        int x,y,z;
        // 定义长度
        public Sanj(){
            
        }
        public Sanj(int x,int y, int z) throws SjException{
            this.x=x;
            this.y=y;
            this.z=z;
            try{
                if((x>=y+z)||(x<=Math.abs(y-z))||(y>=x+z)||(y<=Math.abs(x-z))||(z>=y+x)||(z<=Math.abs(y-x))||(x==0)||(y==0)||(z==0)){
                    throw new Exception("x,y,z 不能构成三角形");
                }
            }catch(Exception e){
                System.err.println("Exception handled in the method SjException");
                throw new SjException("出现异常",e);
            }
        }
        // 面积
        public double getArea(){
            // 海伦公式, S为面积
            int p = (x+y+z)/2;
            double S = p*(p-x)*(p-y)*(p-z);
            return Math.sqrt(S);
    
        }
        public void showInfo(){
            System.out.println("三边长分别为:"+x+","+y+","+z);
        }
    }
    
    // 文件2:
    class SjException extends Exception {
        public SjException(String message, Throwable cause){
            super(message, cause);
        }
    
        public SjException (String message){
            super(message);
        }
        public SjException(Throwable cause){
            super(cause);
        }
    }
    
    
    // test.java文件
    public class SjTest {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.println("请分别输入三角形三边x,y,z的值:");
            int [] arr = new int [3];
                for (int i = 0; i < 3; i++) {
                int num = input.nextInt();
                arr[i] = num;
                }
            int x = arr[0];
            int y = arr[1];
            int z = arr[2];
            try{
                Sanj s = new Sanj(x, y, z);
                System.out.println("三角形面积为:"+s.getArea());
                s.showInfo();
            } catch (Exception e) {
                System.out.println("x,y,z 不能构成三角形");
            }
        }
    }
    

    总结:
    以上都是比较经典的Java异常练习题, 结合前面博客总结的java异常的知识点, 熟练掌握即可解决九成以上的java异常问题!

    展开全文
  • Java 异常练习题

    千次阅读 2020-04-29 14:55:09
    第一 目內容: 从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入...如果输入的不是整数,则抛出异常类:InputMismatchException。 import java.util.InputMismatchException; import java.u...

    第一题

    題目內容:
    从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入错误的话输出“not int”
    最后输出end

    输入输出说明:
    输入:
    asd
    输出:
    not int
    end

    如果输入的不是整数,则抛出异常类:InputMismatchException。

    import java.util.InputMismatchException;
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args){
        	Scanner cin=new Scanner(System.in);
        	try {
        		int n=cin.nextInt();
        		System.out.println(10-n);
        	}
        	catch(InputMismatchException e) {
        		System.out.println("not int");
        	}
        	finally {
        		System.out.println("end");
        	}
    	}
    }
    

    第二题

    題目內容:
    写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:“a,b,c不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

    输入输出说明:
    2 4 3
    三角形的三边长为:2,4,3
    1 2 3
    1,2,3不能构成三角形
    1 2.0 3
    请输入整数作为三角形的边长!

    输入不匹配异常抛出InputMismatchException,非法数据异常抛出IllegalArgumentException。

    import java.util.Arrays;
    import java.util.InputMismatchException;
    import java.util.Scanner;
    class TestTriangle {   
        static void triangle(int a, int b,int c) throws IllegalArgumentException,InputMismatchException{
    	//starts
        	if(a<0||b<0||c<0||a+b<=c||a+c<=b||b+c<=a) throw new IllegalArgumentException();
        	System.out.printf("三角形的三边长为:%d,%d,%d\n",a,b,c);
    	//end
    	}
    }
    public class Main {
    	public static void main(String[] args) {
    		int a=0, b=0, c=0;
    		Scanner in = new Scanner(System.in);
    		try{
    	    	//starts
    			a = in.nextInt();
    		    b = in.nextInt();
    		    c = in.nextInt();
    		    TestTriangle.triangle(a,b,c);
    			//end
    	    }
    		catch(InputMismatchException e) {
    			System.err.println("请输入整数作为三角形的边长!");
    		}
    		catch(IllegalArgumentException e) {
    			System.err.println("a,b,c不能构成三角形");
    		}			
    	}	
    }
    

    第三题

    題目內容:
    模拟向货船上装载集装箱,每个集装箱有一定重量,该重量(整数)大于100小于1000,货船总重为1000,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。

    输入:
    199
    400
    300
    300
    输出:
    目前装载了199吨货物
    目前装载了599吨货物
    目前装载了899吨货物
    超重
    无法再装载重量是300吨的集装箱
    货船将正点启航

    自定义异常类DangerException,其中含有showError方法,在船类中有loading方法来抛出异常DangerException。

    import java.util.Scanner;
    class DangerException extends Exception {
        //starts
        public void showError() {
    		System.out.println("超重");
    	}
    	//end
    } 
    class CargoBoat {
        int realContent;  //装载的重量
        int maxContent;   //最大装载量
        public void setMaxContent(int c) {
        	maxContent = c;
        }
        public void loading(int m) throws DangerException {
      	//starts
        	realContent+=m;
        	if(realContent>maxContent)throw new DangerException();
        	System.out.printf("目前装载了%d吨货物\n",realContent);
    	//end
        }
    }
    public class Main {
    	public static void main(String args[]) {
    		CargoBoat ship = new CargoBoat();
    		Scanner s=new Scanner(System.in);
    		ship.setMaxContent(1000);
    		int m=0;
    		try{
    			//starts
    			while(true) {
    				m=s.nextInt();
    				ship.loading(m);
    			}
    			//end
    		}
    		catch(DangerException e) {
    			//starts
    			e.showError();
    			System.out.printf("无法再装载重量是%d吨的集装箱\n",m);
    			//end
    		}
    		finally {
    			System.out.printf("货船将正点启航");
    		}
    	}
    }
    
    展开全文
  • 这两个问题,我们这篇来总结下,然后来几个异常练习题。1.异常注意事项- 子类重写父类方法时,子类的方法必须抛出相同的异常或者父类异常的子类。(父亲坏了,儿子不能更坏)- 如果父类抛出了多个异常,子类重写...

          我们知道,异常可以使用try catch 和throw抛出,什么情况下使用捕获或者抛出呢?如果在继承中,子类如何处理异常?这两个问题,我们这篇来总结下,然后来几个异常的练习题。

    1.异常注意事项

    - 子类重写父类方法时,子类的方法必须抛出相同的异常或者父类异常的子类。(父亲坏了,儿子不能更坏)

    - 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者他的子集。(子类不能抛出父类没有的异常)

    - 如果被重写的方法没有异常抛出,那么子类的方法绝对不而已抛出异常。如果子类方法内有异常发现,只能使用try 不能使用thow。


    2.如果使用异常处理

          原则上,如果该功能内部可以把问题处理,使用try catch;如果处理不了,交给调用者处理,这个时候使用throw。

          或者这么去理解:如果后续程序需要继续运行,就使用try, 如果后续程序不需要继续运行,就使用throw。


    3.异常的练习题

    上面是总结的一些经验,下面来一个异常的练习题。

    题目:

           键盘输入一个int类型的整数,对其求二进制表现形式。如果录入整数过大,给以提示“录入整数过大,请重新输入一个整数”;如果录入的是小数,给提示“录入的是小数,请重新输入一个整数”;如果录入的其他字符,请提示“录入的是非法字符,请输入一个整数”。

    分析过程:
    1)创建键盘录入对象
    2)将键盘录入结果存储在String类型字符串(关键)
    3)键盘录入的结果转成int类型数据,是正确还是错误
    4)是正确的直接转换,错误的要进行对应判断

    代码:

    package exception;
    
    import java.math.BigDecimal;
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Demo1_Finally {
    	
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入一个整数!");
    		
    		while (true) {
    			String line = sc.nextLine();
    			try {
    				int num = Integer.parseInt(line);
    				System.out.println(Integer.toBinaryString(num));
    				break;
    			} catch(Exception e) {
    				
    				try {
    					new BigInteger(line);
    					System.out.println("输入整数过大,请重新输入一个整数!");
    				} catch (Exception e2) {
    					try {
    						new BigDecimal(line);
    						System.out.println("输入的是一个小数,请重新输入一个整数!");
    					} catch (Exception e1) {
    						
    					    System.out.println("输入的是非法字符,请重新输入一个整数。");
    					}
    				}
    			}
    		}
    		
    	}
    
    }
    
    通过try catch的嵌套,把这个异常的练习给解决了。



    展开全文
  • java异常习题

    2020-05-18 21:09:09
    练习一、 1 选择下列代码中的异常属于(多选)( AD) A. 非检查型异常 B. 检查型异常 C. Error D. Exception 2 类及其子类所表示的异常是用户程序无法处理的(C ) A. NumberFormatException B. Exception C. Error ...
  • Java异常处理习题

    万次阅读 2017-10-05 17:45:16
    1、java中用来抛出异常的关键字是( ) A.try B.catch C.throw D.finally   2、关于异常,下列说法正确的是( ) A. 异常是一种对象 B.一旦程序运行,异常将被创建 C.为了保证程序运行速度,要尽量避免...
  • 共九章内容: 第 1 章 Java概述 第 2 章 Java语言基础 第 3 章 类的封装、继承和多态 ...第 5 章 异常处理 第 6 章 图形用户界面 第 7 章 多线程 第 8 章 Applet 应用程序 第 9 章 输入/输出流和文件操作
  • 并且捕获所有可能出现的异常 /** * @Author: qp * @Time: 2021/9/5 15:33 * @Description 计算n!并捕获可能出现的异常 */ public class Example6_10 { public static int multi(int n){ if(n<0){ throw ...
  • java异常练习题

    千次阅读 2018-09-10 23:05:49
    ------异常已经捕捉到,后面就不能接任何语句 } catch(Exception e) { System.out.println("B"); } } public static void main(String[] args) { try { func(); } catch(Exception e) { System.out....
  • java 异常练习题

    2016-05-27 22:31:00
    要求用户输入数字,捕获并处理用户输入错误的异常 package com.hanqi.ec; import java.util.Scanner; public class Test2 { public static void main(String[] args) { // TODO 自动生成的方法存根 ...
  • Chp11 异常Key Point ●异常的概念和分类 ●异常的产生和传递 ●异常的处理 ●自定义异常
  • Java线程异常练习题

    2021-08-13 11:47:22
    异常继承体系为:异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.util.Exception。而Exception又分为编译时期异常(checked异常)和运行时异常(runtime异常)。 2.请描述你对错误(Error)的...
  • Java异常处理练习题

    千次阅读 2020-05-18 20:02:22
    1.下列代码中的异常属于(多选) (A D) int a = 0; System.out.println(2/a); A. 非检查型异常 B. 检查型异常 C. Error D. Exception 2.类及其子类所表示的异常是用户程序无法处理的 (C) A. ...
  • 定义一个MulException类继承Exception类,要求两数相乘等于100报错,在主类中定义一个方法,在方法中抛出此异常,在主方法观察结果。  定义一个DivException类继承RuntimeException类,要求两数相除等于2报错,在...
  • 教材Java面向对象程序设计(第二版) 袁绍欣 第七章6、7 6.编写一个程序方法,对空指针异常、除数为零异常给出出错的中文提示。当有新异常发生时,可扩展该方法中的代码进行统一处理。 public class Test{ public ...
  • 前几次分享了一些面向对象的一些知识和习题,但还没分享完,之后还会有补充的,这次就先往后分享,这次分享的是Java中的异常处理,有哪里大家觉得不对的地方可以在下方留言。 Error与Exception体系以及常见的...
  • java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常Java中的异常处理机制的简单原理和应用 答: 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生...
  • java 抽象类练习题

    2013-05-31 10:11:18
    java 抽象类 接口 异常 练习题 1.在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口(D)。 A.private B.protected C.private protected D.public 2.下列程序运行的结果是(B)。 interface ...
  • java 异常练习题2

    2016-05-28 19:19:00
    建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。 package exception; public class TestException { public static void main(String[] args) ...
  • 需求: 编写应用程序EcmDef.java,接收控制台的两...分母为零(ArithmeticException)及输入负数(EcDef 自定义的异常)进行异常处理。 import java.util.Scanner; public class EcmDef { public static void main(Strin
  • // 要求用异常处理输入非数字的异常,和除数为0的异常。 import work.ExceptionPay.PayException; import java.util.InputMismatchException; import java.util.Scanner; public class Exercises1 { public ...
  • Java-异常处理练习

    2019-09-24 05:31:30
    1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。 package Yichang; public class Text { public static void main(String[] args) { for...
  • 该文档主要包含一些java 异常相关的习题,不足之处,敬请谅解!!!!
  • Java 集合练习题

    千次阅读 2019-12-30 16:46:15
    (Set,Hash 算法)为上一的Worker 类,在添加完equals 方法的基础上,添加一个 hashCode 方法。 public int hashCode(){ //1 } 有几种写法: 1) return 0; 2) int result = 0; if (name != null) ...
  • ... 2、输入信息之后,后台JAVA程序模拟用户注册 ...引用等于null的这个判断最好放到所有条件的最前面,因为短路与的执行有可能会造成空指针异常 username == null 不如写成 null == username username.equals("ab.
  • Java 多线程 之常见练习题整理

    千次阅读 2019-05-24 21:14:36
    是从网上搜的,便于整理,长期更新。 问题一:如何同时处理多条日志打印 现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这...
  • Java-练习题-004-异常处理-2020-6-28 目录一、二、三、四、五、 一、 二、 三、 四、 五、

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,387
精华内容 6,154
关键字:

java异常习题

java 订阅