当前位置:  技术问答>java相关

奇怪,Java中如何判别一个没有明确说明会抛出异常的函数到底会不会抛出异常

    来源: 互联网  发布时间:2015-09-27

    本文导语:  在编程时看jdk文档,介绍函数时有的明确说明函数会抛出异常,如String的charAt(int) 而有的没有说明如String 的length(),还有其他函数,我以前都认为没有说明的都不会抛出异常,最近发现,length()确实抛出异常(当string...

在编程时看jdk文档,介绍函数时有的明确说明函数会抛出异常,如String的charAt(int)
而有的没有说明如String 的length(),还有其他函数,我以前都认为没有说明的都不会抛出异常,最近发现,length()确实抛出异常(当string为null时),请问如何确定一个函数到底有没有抛出异常,有没有其他的文档说明了象length()这样的函数会抛出异常

|
那是因为你string是空的,没有实例化,在你使用时这个串时,对串抛出的异常,和函数没关系!

|
java抛出异常,是由他规律的,就你提的问题简单来说是,如果你调用的函数在声明的时候声明了抛出的异常,那么调用他的函数就必须要显示的捕捉或者继续抛出这个异常,相反则可以放弃;程序在执行过程用会有运行异常或错误,这种异常是不强迫捕捉的。但如果出现错误,一样会抛出异常。具体内容可以看一下thinking in java中的相关内容。

|
RuntimeException不用声明也会在运行时产生了的话抛出;没有生命你要抛出异常也可以的。throws是说明你需要别人处理可能的异常,不说明就是你不声明要别人处理(但可以抛出)。

|
老大,这样试试:
void x()
{
  try {
    y();//不能确定一定抛出异常
    z();//不能确定一定抛出异常
    m();//不能确定一定抛出异常
    n();//不能确定一定抛出异常
    p();//不能确定一定抛出异常
  } catch (Throwable t) {
    t.printStackTrace();
    //...
  }
}
有异常的话,可从堆栈跟踪里清楚地看到是y,z,m...的那个出了错

|
java.lang.Object
  |
  +-java.lang.Throwable
        |
        +-java.lang.Exception(一定要catch或者throws)
              |
              +-java.lang.RuntimeException(JVM会自己处理,当然也可以自己处理)

|
学到东西啦

|
除了java.lang.RuntimeException会偶尔冒出来之外,所有的异常都有说明,不会出现凭空出异常的情况,楼主的问题是由于变量为null引起的与函数无关,可以说都没有走到函数处就异常了

|
楼主是不是以前是VC或者VB高手啊?可能对于错误处理还是那么的津津乐道,在java里你可以省很多事了。用不这么费神的。

|
违例控制只是防止异常情况发生导致程序中断,不太好作为流程控制的一种方法来用。

|
up
我可不那样认为,我认为一个好的程序是可以在违例中写流程控制的,在违例中写流程控制不但不是不好,而且是非常好,我以前做过的一个项目就有在catch{}里写出的流程.楼上的很多位大侠说的都很好.可以学习学习.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • shm_open函数问题.奇怪!!!奇怪!!!!!
  • 一个特奇怪的函数申明错误
  • 关于gettimeofday() 函数的奇怪问题
  • linux 函数返回值很奇怪 pthread_getspecific(key)
  • 源码中看到一种很奇怪的函数调用,怎么回事?
  • system函数的奇怪问题,进来看看!
  • main函数明显被编译了,可是烧到芯片上后,程序却没变化???奇怪!有哪位碰过这样的问题吗??
  • 太奇怪了,正在开发bootloader,gcc难道有内置的string的处理函数链接到我的程序中了?我根本没有链接C库啊。
  • linux 多线程函数之间乱串的奇怪问题
  • 一个关于inet_ntoa函数在printf中的奇怪现象(不知算不算linux的bug:-)
  • 一个关于fork函数的奇怪问题!?
  • 输入子系统驱动程序,input_report_ 这类函数的一个奇怪问题
  • 很奇怪的问题,关于类方法函数传递?请看代码:(特邀路人甲、天生不笨等高手)
  • 奇怪!奇怪!真奇怪!!!
  • 奇怪奇怪真奇怪
  • 奇怪,真奇怪,在线等待
  • 奇怪奇怪...........?????...........
  • solaris上的C程序,编译报错: 存储类只能使用register,奇怪,奇怪!
  • 奇怪!奇怪!我用jbuilder编jsp程序,从数据库中取出的字符串型字段却显示16进制数
  • 编程语言 iis7站长之家
  • 奇怪啊,奇怪,为什么我的JB7做EJB时,只要在EJB设计面板上随便做点东西,我的EJB的JAVA的源码就会变的不见了,或者少了很多字段申明??
  • 奇怪,CSDN的贴子,提问部分我最多能看到第4行??!!
  • accept,recvfrom接收到奇怪的ip
  • 好奇怪的问题哎………………怎么也不能安装!
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 奇怪!关于字串参数的问题?
  • 一个奇怪的路径问题
  • 一些奇怪的现象,帮帮我
  • !!!初学Java,遇到一个奇怪问题,请大家回答!!!
  • SOCKET发送奇怪问题!!!
  • 奇怪的四分之一屏!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3