Java异常的一个小知识
有以下两个代码:
package com.lk.A; public class Test3 {
public static void main(String[] args) {
try {
int a = args.length;
int b = 42/a;
int c[] = {42};
c[42] = 42;
System.out.println("b="+b);
} catch (ArithmeticException e) {
// TODO: handle exception
System.out.println("除0异常:"+e);
} catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组越界异常:"+e);
}
}
}
和
package com.lk.A; public class Test4 {
public static void main(String[] args) {
try {
procedure();
int a = 1;
int b = 42/a;
System.out.println("b="+b);
} catch (ArithmeticException e) {
// TODO: handle exception
System.out.println("除0异常:"+e);
}
} private static void procedure() {
// TODO Auto-generated method stub
try {
int c[] = {42};
c[42] = 42;
} catch (ArrayIndexOutOfBoundsException e) {
// TODO: handle exception
System.out.println("数组越界异常:"+e);
} }
}
这个运行的结果不尽相同。
第一个运行到错误的地方就要中断了,不能再继续。因为在Java中在一个try字句中如果程序发生异常则不会继续向下执行。
而第二个程序不同的是,有一个try块在方法里,如果这个方法里的try对异常进行了处理,则后面的代码是可以执行的。
附上一个小知识:
问:Java程序中发生的异常必须进行处理吗?
答:Java异常处理不是必须或者不必须的问题,而是一种程序逻辑的问题。
如果程序在某种条件下执行正常,则程序继续进行,无须处理异常。如果发生了异常,比如数据库连接不上、文件没有找到等,则说明某种条件发生了,这就需要你对这种条件进行处理。
Java异常的一个小知识的更多相关文章
- java异常的一些小知识
异常,我们软件都需要面对的一个问题.如何让你的软件更加健壮呢?这是一个值得我们考虑的问题.这里主要为大家介绍一下异常是什么,异常是如何产生的,如何将异常抛出,如何捕获异常,对于异常应该如何处理的个人一 ...
- 从最小角回归(LARS)中学到的一个小知识(很短)
[转载请注明出处]http://www.cnblogs.com/mashiqi (居然有朋友说内容不接地气,那么我就再加一段嘛,请喜欢读笑话的同学直接看第二段)假设这里有一组向量$\left\{ x_ ...
- 学习笔记:Java的一些基础小知识之JVM与GC
一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太 ...
- Java的一些基础小知识之JVM与GC (转)
一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...
- 【java】:通用小知识
1.将String字符串放在最前面 为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Bad i ...
- 关于.Net和Java的看法-一个小实习生经历
目录 背景 带着疑惑 生活中的迷茫 开始实训 实习 再看java 总结 背景 笔者是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发 ...
- java中方法传值小知识解析
1.java语言参数之间只有值传递,包括按值调用和按引用调用. 一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值. 按值调用:包括八大基本数据类型都是按值调用.传值的时候,也 ...
- 下载eclipse 配置eclipse 新建Java项目 写一个小程序 运行
为了更好的学习java,我打算下载个eclipse 地址:https://www.eclipse.org/downloads/packages/ 我们需要下载的版本是Eclipse IDE for J ...
- 关于 JavaScript 字符串的一个小知识
说起字符串,我们再熟悉不过了.接触编程的第一个经典任务就是输出字符串:Hello, world.但是你知道 JavaScript 字符串在计算机里是怎么表示的吗? 最简单直观但不太准确的的理解就是,字 ...
随机推荐
- 移动端页面的head头部内容
- Codeforces 161 D. Distance in Tree (树dp)
题目链接:http://codeforces.com/problemset/problem/161/D 题意: 给你一棵树,问你有多少对点的距离为k. 思路: dp[i][j]表示离i节点距离为j的点 ...
- thinkphp利用行为扩展实现监听器
1.在User/login函数中添加如下代码 tag('login_listener',$result); //alert('success', '恭喜,登录成功', U('xx/yy')); 去掉跳 ...
- easyui 表单和自定义验证扩展和js自定义返回值
================jsp==========================<form method="post" id="regfrminp&qu ...
- C++STL学习笔记_(3)stack
10.2.4stack容器 Stack简介 ² stack是堆栈容器,是一种"先进后出"的容器. ² stack是简单地装饰deque容器而成为另外的一种容器. ² #inc ...
- sql reiserror 输出错误
其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } ...
- Js弹出层,弹出框代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 在sphinx中应用复杂过滤条件
一.问题的引入 在sphinx应用中,需要对数据进行复杂的条件过滤,刷选出我们需要的数据.这个过程,等同于mysql查询中的where条件. 但sphinx本身的filter并不能支持复杂的逻 ...
- MariaDB5.5.32 绿色版下载安装一条龙
1.下载地址: http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/mariadb-5.5.32/win32-packages/mariadb-5.5.32 ...
- HttpWebRequest post请求获取webservice void数据信息
private void button2_Click(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht["sc ...