重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先你使用的是判断代码快,在代码快的编写上就错误了。不论是java和是C#,进行异常处理需要使用的外侧代码只有try{}catch{}finally try块中的语句就是可能要发生异常的代码,catch中的语句就是如果try中的语句发生了异常那么就执行catch中的代码。finally是一个可选的,无论是否发生异常都要进行执行的代码放在finally中。
创新互联专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都围栏护栏等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身定制品质网站。
直接throws Exception 写在你的方法或者类名后
或者用try catch
在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。
抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。
捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。
对于运行时异常、错误或可查异常,Java技术所要求的异常处理方式有所不同。
由于运行时异常的不可查性,为了更合理、更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。
对于方法运行中可能出现的Error,当运行方法不欲捕捉时,Java允许该方法不做任何抛出声明。因为,大多数Error异常属于永远不能被允许发生的状况,也属于合理的应用程序不该捕捉的异常。
一般如果出现非人为异常,即非通过代码throw的方式抛出异常,同时未通过try-catch捕捉。则当前代码不会继续执行,而是向上抛出异常,即返回调用当前代码的位置。如果该位置未对异常进行处理,则继续向上抛出。
通过try-catch捕捉异常,即异常代码在try中,可以在catch中进行异常处理
try{ ... //代码,产生异常}catch(Exception e){//e是异常类型,一般根父类为Exception类 ... //进行产生异常后的处理}finally{ ... //无论如何都会执行的代码}...//如果catch中没有继续throw异常以及没有产生新异常,则继续执行的代码
如果想要代码继续执行,可以在catch中不继续抛出异常,则代码将执行catch之后的代码(如果有finally,则先执行finally的代码)。如果想要在产生异常之后仍需要执行一部分代码,则可以将该部分代码放在finally中。
return会执行的。
try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里面有操作工作流的,那么如果出错了fianlly可以用力处理,关闭工作流对象,避免浪费资源。finally{}是必须执行的,不是管是出错了,还是不出错。
java中抛出异常后面的代码不会执行,测试代码如下:
public class Test {
public static void main(String[] args) {
int i = 10;
try {
// 此处会报错
int j = i / 0;
System.out.println("hello");
} catch (Exception e) {
e.printStackTrace();
}
}
}
执行结果:
class Math {
public static float div(float x, float y) throws Exception {
System.out.println("=====计算开始=====");
float temp = 0;
try {
temp = x / y;
} catch (Exception e) {
throw e;
} finally {
System.out.println("=====计算结束=====");
}
return temp;
}
}
public class danci {
public static void main(String[] args) {
try {
float i = 0;
float j = 0;
// String st1 = args[0];
// String st2 = args[1];
// i = Float.parseFloat(st1);
// j = Float.parseFloat(st2);
System.out.println(i + " 除 " + j + " = " + Math.div(i, j));
} catch (Exception e) {
System.out.println("异常产生:" + e);
}
}
}
因为你是在我注释的那地方出现的异常,所以下边的不会执行而是立即跳到catch,如果注释下就好了。