在java中一个方法抛两个异常会怎样

问题描述

在java中一个方法抛两个异常会怎样

在一个java方法中同时用throw和throws抛出异常。会有不良的影响么。会不会有一个一个异常抛不出去的情况发生啊?求大神帮帮忙

解决方案

他俩用的地方不一样,throws是写在方法后面,其他地方调用时,要捕获,throw是在方法内直接抛出,可以一起用throw触发了,估计就到不了throws的捕获了,看你具体怎样用的

解决方案二:

方法声明时可以抛出异常,但是并不代表调用这个方法时会发生异常。
测试要构造异常条件才能走入异常分支的啊。例如:

 import java.util.ArrayList;
import java.util.List;

public class ExceptionTest {
    /**
     * 判断某个列表中,某个位置处的值是否是指定的字符串
     * 可能抛出两种异常
     * @param value
     * @param list
     * @param index
     * @return
     */
    public static boolean isTargetInCertainIndex(String value,List<String> list,int index)
        throws IllegalArgumentException,IndexOutOfBoundsException {
        if(value==null||list==null){
            throw new IllegalArgumentException("date is null");
        }

        if(index>list.size()){
            throw new IndexOutOfBoundsException("index is out of bounds");
        }

        boolean flag = false;
        String data = list.get(index);
        return value.equals(data);
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("hello");
        list.add("world");
        list.add("I");

        boolean flag = false;
        //没有异常的测试
        try {
            flag = isTargetInCertainIndex("hello",list,0);
            System.out.println("flag:"+flag);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        //一种异常的情况
        try {
            flag = isTargetInCertainIndex(null,list,0);
            System.out.println("flag:"+flag);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        //另一种异常的情况
        try {
            flag = isTargetInCertainIndex("hello",list,4);
            System.out.println("flag:"+flag);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

}

测试一下就知道构造了三种测试用例,走入三种不同流程的。-

时间: 2024-12-03 13:20:05

在java中一个方法抛两个异常会怎样的相关文章

java语法-java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗

问题描述 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 解决方案 看需要,一般来说匿名类用来实现接口.匿名对象就是一般的对象.单单从语法上来说,都可以. 解决方案二: 还是与些区别的,匿名类用来实现接口.匿名对象其实就是一般的对象.

java中一个类的方法与方法之间可以有联系,也可以相互孤立吗

问题描述 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗什么情况要孤立,什么情况要有联系呢 解决方案 看需求.比如说class A{ float get长度() { ... } float get宽度() { ... } float get面积() { return get长度()*get宽度(); }}这里就需要调用另外两个方法 解决方案二: 现在还有人有这玩意嘛 解决方案三: 类的方法主要是对属性的一些操作,方法作用

class-为什么说java中一个类中定义两个构造函数。

问题描述 为什么说java中一个类中定义两个构造函数. 为什么说java中一个类中定义两个构造函数.是不是意思就是一个是无参构造函数,一个是有参数的构造函数, 解决方案 构造函数可以定义很多个,如同函数重载,只要参数个数类型不同就可以. 因此无参构造函数只能有一个.至于定义2个,可以是一个无参,一个有参,也可以是2个有参. 解决方案二: oh no, an object can have multiple constructors with different parameters. 解决方案三

java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗

问题描述 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 解决方案 加入你有一个对象 Object 里面有个方法:public void method1(); 那你调用这个方法的时候就是 object.method1(); 那么这里就表示 没有返回值. 所以我里面的void就是 :没有返回值,这个方法不能做他用! 对比 有一个object 里面有一个方法: publ

java 接口 接口实现-Java中一个类如何实现多个接口中同名同参返回值不同的方法?

问题描述 Java中一个类如何实现多个接口中同名同参返回值不同的方法? 如:` class A implements Interface1,Interface2{ //这里该怎么写呢? } interface Interface1{ public void method(); } interface Interface2{ public int method(); } 解决方案 class A implements Interface1,Interface2{ //直接写啊 public voi

java中修饰方法的一个泛型指定为一个类问题

问题描述 java中修饰方法的一个泛型指定为一个类问题 java中修饰方法的一个泛型指定为一个类,那么这个方法的返回类型肯定就是这个类的对象,那返回的是这个类的子类的对象可以吗? 解决方案 可以的,但是在接收到参数进行处理的时候,是需要注意的.给你举个例子: public static void main(String[] args) { int int1 = (Integer) getInt();//正确 int int2 = (Integer) getInt2();//报错 java.lan

java中重写方法必须抛出和原方法一样的异常或者不抛异常

class A {     public void method throws IOException(){} } // 错误 class B {     public void method throws FileNotFoundException(){} } // 错误 class C {     public void method throws Exception(){} } // 错误 class D {     public void method throws IOExceptio

Java中异常处理方法总结

异常(Exception):指程序运行过程中出现的非正常现象. 1.  Java异常的异常处理机制 早期的情况: 早期使用的程序设计语言是没有提供专门进行异常处理功能的,程序设计人员只能苦逼的使用条件语句对各种可能设想到的错误情况进行判断,来捕捉特定的异常,然后进行相应的处理.这样的处理方式,往往要整出大段大段的if-else语句.本来需要完成相应功能的代码块很小,但是加上这样针对异常处理的条件语句使得代码显得非常臃肿,这样一来代码的可读性和可维护性就下降了,而且有时候还会遗漏意想不到的异常情况

JAVA中toString方法的作用

以下是对在JAVA中toString方法的作用进行了详细的分析介绍,需要的朋友可以参考下   因为它是Object里面已经有了的方法,而所有类都是继承Object,所以"所有对象都有这个方法". 它通常只是为了方便输出,比如System.out.println(xx),括号里面的"xx"如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法  回答补充:写这个