导航:首页 > 源码编译 > 异常不处理会通过编译嘛

异常不处理会通过编译嘛

发布时间:2023-04-26 14:55:52

java中,异常处理,不写catch语句(或者不写异常处理),异常处理是交给谁来完成的

异常是逐级上报的。
当调用的方法抛出异常,而当前方法没有异常处理的话,异常信息会提交给调用这个方法的方法,扰茄陆在改方法中如果有异纳做常处理,则正常处理,如果还没有,那么继续上报给上一级调用这个方法的方法,继续找异常处理,直到上报到有异常处理的方法,或都没有直接交给JVM处理
比如:
A方法 -> 调用 -> B方法 -> 调用 -> c方法 -> 调用 -> d方法 -> 调用 -> e方法
若e出现异常且未捕获异常(就是try-catch),则将异常抛给d,若d捕获异常了,就处理,未捕获就将异常抛给c,在c中继缓顷续找是否捕获了,未捕获抛给b,以此类推,直到找到捕获了异常的方法位置,如果到a也没有捕获异常,则交给JVM

㈡ java怎么判断一行代码是会编译失败还是运行时异常

用eclipse要是编译失败会有红叉提示你的。运行时异常不会。

㈢ 请问runtimeexception说是运行时异常 可以不进行处理 那么不处理程序又是怎么继续运行的呢

RuntimeException是运行时异常,表示你的代码本身存在BUG.不是编译错误,所以可以运行.应闹族含该是逻辑上的错误,比如数液笑组下标越界,等等. 一定要处穗脊理

㈣ java中的异常处理的基本结构

1、什么是异常处理
异常:程序在运行过程中的一些特殊情况,例如:内存不够用,文件找不到,对象是Null,数组下标越界。当产生这些特殊情况的时候,可能会造成程序不能正常运行。
异常处理:让程序在发生异常的时候能够正常执行。
2、异常分类
检查性异常,必须处理,如果不处理,编译不能通过。
非检查性异常,可以不处理,但是一旦发生,程序就不能继续运行。
3、对于非检查性异常
虽然编译的时候不会报错,能够运行。但是运行的时候,如果发生错误,后果很严重。所以还是要处理。可以通过增加代码来解决。
例子:对于NullPointerException,在调用方法之前可以检查这个对象是否为null
if(date!=null){
date.getTime();
}
例子:a/b(b为0产生异常),代码中可以检查b是否为0
if(b!=0)
a/b;
else
// 抛出异常!
也可以采用try-catch进行处理。
4、try...catch对异常处理
准备工作:在进行异常处理之前,必须清楚可能会发生哪些异常,异常与要调用的方法有关,通常在方法的定义中通过throws声明可能发生的异常。
把可能产生异常的代码放在try语句中;
针对每种可能出现的异常,编写一个catch,catch中写出异常类型;
在catch对应的代码中编写对异常进行处理的代码,当异常产生并与当前异常类型匹配,将执行catch中的代码。
基本结构:
try{
// 可能产生异常的代码
}catch(异常类型 异常对象){
// 异常产生时候的处理代码
}

㈤ java方法抛异常 但程序中没人调用 编译会过吗 好像不catch编译报错 运行那关都不到

很好奇为什么会有方法里面套方法?是不是少写了什么?
另外,方法抛异常但程序中没人调用,只要这个方法是protected或者public,你不调用,自然会有人调用。不必担心编译不过,否则好多程序没法写了。
main函数throws了异常虽然没必要,但也没铅闹问题。(自然会有人给你try)

你自己调用一个槐伍罩声明throws XXException的方法,则必须try catch。除非你调用哪个方法的方法也橘磨也声明了throws XXException或XXException的父类,这叫级联抛出异常。

㈥ JAVA中,是不是所有异常都能通过编译,只是运行时才产生错误

如果你代码写的就有错误的话肯定是无法通过编译的,运行时异常是可以通过编译的,但是运行就会报错

㈦ 异常处理是在编译时进行的

编译时,不会处理程序的异常,只会处理程序的一些逻辑错误、语法错误等

㈧ java 异常不处理会怎么样

第一种:不做捕获和抛出
1、如果调用的方法throws抛出了异常,就一定要try catch,不然无法编厅旅枯译
2、如果调用的方法没有声明会抛出异常,那么不用try catch做处理的话,一旦出现异常,Exception会一层一层地从被调用处向调用处一直抛,直到有处理异常的扮洞方法处理了这个异常。

第镇销二种:仅仅是try{}catch(){},或者仅仅是throws
只要try了,不管是catch 还是 finally,try里面的语句都是执行到出异常的那一句,然后跳出try块,接着往catch、finally和finally之后的语句执行

㈨ 在JAVA中已检查异常和位未检查异常是什么二者有何区别

1、含义不同:检查异常就是编译器要求你必须处置的异常。不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必须要对这段代码trycatch,或者throwsexception。

非检查异常是编译器不要求强制处置的异常,虽然有可能出现错误,但是不会在编译的时候检查。

2、运行时情况不同:运行时异常都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是非检查异常,程序中可以选择捕获处理,也可以不处理。

这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。

运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。

如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不要自定义检查异常。

3、解决方式不同:检查异常继续抛出,消极的方法,一直可以抛到java虚拟机来处理,就是通过throwsexception抛出。用try...catch捕获。注意,对于检查的异常必须处理,或者必须捕获或者必须抛出。

对未检查的异常捕获;继续抛出;不处理。

一般是不处理的,因为你很难判断会出什么问题,而且有些异常你也无法运行时处理,比如空指针,需要人手动的去查找,而且,捕捉异常并处理的代价远远大于直接抛出。

(9)异常不处理会通过编译嘛扩展阅读:

所有异常类型都是Throwable类的子类,它包含Exception类和Error类,Exception又包括checkedexception和uncheckedexception。

uncheckedexception:Java编译器不要求对未检查异常一定捕获或抛出,可以不做处理。此类异常通常是在逻辑上有错误,可以通过修改代码避免。在eclipse中(保存即编译)编译后此类异常发生处会报错。

checkedexception:Java编译器要求对检查异常必须捕获或抛出,代码逻辑没有错误,但程序运行时会因为IO等错误导致异常,你在编写程序阶段是预料不到的。

如果不处理这些异常,程序将来肯定会出错。所以编译器会提示你要去捕获并处理这种可能发生的异常,不处理就不能通过编译。

㈩ java 程序中发生的异常必须进行处理么

、java异常处理不是必须或者不必须的问题,而是一种程序逻辑的问题,是一种如果...就....的问题,就像if else一样,如果条件成立,则做xx事,否则做另外的xx事情。
异常也是一样,如果程序在某种条件下执行正常,则程序继续进行,如果发生了异常(比如说数据库连接不上了),那么说明某芹悉种条件发生了,你需要对这种条件进行另行处理,这就是异常处理。
就像你与朋戚首孝友约会一样,本来约好了时间地点,如果一切正常,约会照常进行(程序执行正常),但可能由于某种原因,你不能按时高稿参加了,这时异常发生了,你可以打个电话告诉你的朋友(异常处理),当然你也可以什么也不做(不处理异常),那么你朋友就可能会生气(把一堆的错误信息抛出)。

阅读全文

与异常不处理会通过编译嘛相关的资料

热点内容
程序员的种类及名称 浏览:290
美国程序员薪资 浏览:12
黑石通汇证券服务器什么时候到期 浏览:391
东方财富app里我的关注怎么看 浏览:747
bm3d单反级降噪算法 浏览:457
华为安卓机激活时间怎么查询 浏览:850
如何用优盘重装服务器系统 浏览:317
日本结婚三代算法 浏览:920
皓强工具解压步骤 浏览:690
部队抗洪抢险命令范文 浏览:888
欧姆龙plc编程软件使用教程 浏览:594
ai文件pdf 浏览:912
腾讯云服务器挂载混合云 浏览:758
智能小车用什么单片机 浏览:463
java怎么给窗口关闭 浏览:940
列举51单片机的寻址方式 浏览:706
剪辑app怎么写长篇文字 浏览:400
app专属流量过月租怎么不更新 浏览:655
王者程序员都有谁 浏览:76
给牛换脚掌解压 浏览:388