本人在学习java,有个问题,throw new IllegalArgumentException(“一个字符串”)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本人在学习java,有个问题,throw new IllegalArgumentException(“一个字符串”)相关的知识,希望对你有一定的参考价值。

throw new IllegalArgumentException(“一个字符串”)

这个异常在我所看的一个程序中用到,书中用了throw new的方法,但他没有对这个异常给一个class IllegalArgumentException extends Exception(参数)形式的定义,也没有对这个异常进行捕获,我想知道是怎么回事。我所了解的异常使用形式有两种,1:在代码中try,然后catch。2:在方法声明处先田throws所有异常,然后将方法调用放入try中,再catch。补充:自己定义的异常要在try中以显式的形式抛出如:thorow new...然后再在catch中补货。但是throw new IllegalArgumentException(“一个字符串”)没有定义,也没有捕获,怎么回事?求大神帮解决!

你这个异常是本身就有的,如NullPointerException , NumberFormatException,我想你在学习异常这块的时候一个异常的继承关系,你自己看看去。
还有就是如你所说的要继承一个异常,比如自己定义一个异常,那么就可以抛出你定义这个异常类的名字了,这有什么好处呢。比如你在做一个项目的登录功能时候到数据库查找用户名密码是否正确,如果不正确,通过抛出异常给调用该方法B(抛出异常所在的方法)的那个方法A,然后在A中用
trycatch(自定义异常名字).捕捉,然后通知用户. throw 就和人一样在推脱责任。出了事情,受害者找到小A 小A说他解决不了就推给小B 小B 也说做不了那么推给小C 知道小D站出来说:这也太不像话了,你们不解决我来,所以小D就用trycatch解决这事,那么伤害者也就消停了.
说了这么多,不知你懂了没有.追问

懂了90%了,还有一点疑惑:
您在整个讲解过程中没有提到“throws”这个关键字,我知道这个关键字是添加在方法定义语句的后面(是这样吧?),例如:
returntype methodname(...) throws Exception1 Exception2

....


疑问:1.什么时候要用到这种写法呢?
2.您上面讲的这个异常处理体系貌似已经完善了,我也懂了,现在又多出个“throws”,他应该添加到您上面所讲的这个处理体系的哪块呢?

追答

不好意思回答晚了
fun() throws Exception
try

catch(Exception e)
e.printStackTrace();
throw new Exception("出错了"); //如果这里 throw 那么fun()后一定要写throws Exception才能向上抛

参考技术A 他这是throw了一个错误参数异常,此异常属于继承与RuntimeExpcetion(运行时异常),最终都要捕获的,如果不捕获的话最后就会在控制台打印错误信息,并且程序终止了。 参考技术B 你主动抛出这个异常给上层,上层于是便取得相关的异常信息。上层如果没有捕获自然再往上抛,而你要提示的信息已经添加进这个异常类。 参考技术C 异常有三种,1、用throws声明异常。2、用try— catch—finally捕获异常, 3、用throw主动抛出异常。你说的情况是不是属于第三种情况呢?追问

有点明白了啊。
追问:
1.什么异常要主动抛出呢?(一般的异常都是系统帮你抛出吧)
2.再说,这个异常我明白了是主动抛出的,但是,在我看的程序中,下面的代码并没有捕获(catch)它啊。

追答

有些异常是可以修复的,但是你却不知道怎么去修复它,只好主动把这个异常抛出,抛给调用你这个方法的人,这时候要主动抛出,其实不抛出也可以,什么事情都不是绝对的。视情况而定吧。
至于你的第二个提问我没有看到程序,也不是很清楚。呵呵……望见谅啊!

Java学习笔记3.10.4 异常处理 - throw关键字

文章目录

零、本讲学习目标

  1. 理解throws抛出异常与throw抛出异常的区别
  2. 掌握如何使用throw关键字在方法体内抛出异常

一、使用throw关键字抛出异常

  • 程序开发中,除了可以通过throws关键字抛出异常外,还可以使用throw关键字抛出异常
关键字 抛出异常
throw关键字 用在方法体内,并且

以上是关于本人在学习java,有个问题,throw new IllegalArgumentException(“一个字符串”)的主要内容,如果未能解决你的问题,请参考以下文章

java throw new NoSuchElementException build failed with arraylist

java知识点异常throw new RuntimeException(e)与e.printStackTrace( )的区别

最近在玩微博,想用java自己搞个。本人没有项目经验,比较笨,希望能有个视频啥的一步步带着做。

java中抛出throw关键字是怎么用的? 举例?

Java学习笔记3.10.4 异常处理 - throw关键字

java中new的用法,这个输出结果是啥意思?