java异常基础知识点
@firstmiki 2017年1月12日12:03:32
一、异常的产生和捕获:
package Exception;
/**
* 演示了java中异常的产生和捕获
* @firstmiki
*/
import java.util.Scanner;
public class Exception1 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
try{
String str = "123a";
int output = Integer.parseInt(str); //这一句就产生了异常
System.out.println(output);
}
catch(NumberFormatException e){
System.out.println(e.getMessage());
/*System.out.println(e.getClass());
System.out.println(e.getStackTrace());*/
e.printStackTrace();
}
}
}
运行结果:
For input string: "123a"
java.lang.NumberFormatException: For input string: "123a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Exception.Exception1.main(Exception1.java:15)
二、异常语句:try...catch...finally...
注意下面代码中的16--19行:
package Exception;
/*
* finally语句 (重要)
*/
public class TestFinally {
public static void testfinally(){
String str = "123a";
try{
int a = Integer.parseInt(str);
System.out.println(a);
}catch(Exception e){
e.printStackTrace();
System.out.println("exception");
return; //返回,不再执行下面语句;
}finally{
//尽管加了return,奇怪的是,这里的finally语句被执行了;
System.out.println("the end in finally");
}
System.out.println("end");
}
public static void main(String[] args) {
testfinally();
}
}
运行结果:
java.lang.NumberFormatException: For input string: "123a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Exception.TestFinally.testfinally(TestFinally.java:10)
at Exception.TestFinally.main(TestFinally.java:25)
exception
the end in finally
三、throws关键字:
注意看下面的注释说明:
package Exception;
/*throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。*/
public class Testthrows {
//throws:把异常向外面抛
public static void testthrows() throws NumberFormatException{
String str = "123a";
int a = Integer.parseInt(str);
System.out.println(a);
}
public static void main(String[] args) {
try{
testthrows();
}catch(Exception e){
System.out.println("我们在这里处理了一个异常");
e.printStackTrace();
}
System.out.println("这里还是被执行了");
}
}
运行结果:
我们在这里处理了一个异常
java.lang.NumberFormatException: For input string: "123a"这里还是被执行了
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Exception.Testthrows.testthrows(Testthrows.java:8)
at Exception.Testthrows.main(Testthrows.java:14)
四、throw关键字:
package Exception;
/*throw是语句抛出一个异常。语法:throw (异常对象); 如: throw e;
一般会用于程序出现某种逻辑时程序员主动抛出某种特定类型的异常。*/
public class Testthrow {
public static void testthrow(int a) throws Exception{
if(a==1){
//直接抛出一个异常
throw new Exception("这里a有异常");
}
System.out.println("这里a没有异常,a="+a);
}
public static void main(String[] args) {
try {
testthrow(1);
} catch (Exception e) {
e.printStackTrace();
}
try {
testthrow(0);
}catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:
java.lang.Exception: 这里a有异常
at Exception.Testthrow.testthrow(Testthrow.java:8)
at Exception.Testthrow.main(Testthrow.java:14)
这里a没有异常,a=0
java异常基础知识点的更多相关文章
- Java入门基础知识点总结(详细篇)
Java入门基础知识点总结(详细篇)~~~~~目录 1.1 图解 1.1.1 Java基础知识点 1.1.2 Java基础语法的相关内容 1.2 关键字 1.3 标识符 1.3.1 标识符概念 1.3 ...
- 《Java笔记——基础知识点》
Java笔记--基础知识点 位运算符操作的都是整型的数据. 位运算符是直接对整数的二进制进行计算. 整数不能进行逻辑运算. 运算符优先级别由高到低分别是:() > ! > 算术 ...
- java 学习基础知识点拾遗 导航页
每种编程语言的知识点都是很多很杂的,java也是如此 相信很多人学习的过程中都是深一脚浅一脚,最基础的东西可能有些也不是非常确定 整理了最基本的一些知识点,可以说是java入门的-1层级别的,作为自己 ...
- java必备基础知识点
Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...
- Java异常基础Exception
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...
- Java 异常基础详解
目录 1. Java 中的异常 1.1 什么是异常? 1.2 什么是异常处理? 1.2.1 异常处理的优势 1.3 Java 异常类的层次结构 1.4 异常类型 1.5 检查和未检查异常之间的区别 1 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承- 一个子类只能有一个父类- 一个父类可以派生出多个子类这里写图片描述子类继承了父类,就继承了父类的方法和属性.在子类中,可以使用父类中定义的方法和属性, ...
- java异常基础整理
1.try-catch e.printStackTrace(); 会打印出方法的调用痕迹,如此例,会打印出异常开始于TestException的第16行,这样就便于定位和分析到底哪里出了异常 2.使用 ...
- Java并发基础知识点详解
1.synchronized与Lock区别 父类有synchtonized,子类调用父类的同步方法,是没办法同步的,因为synchronized不是修饰符,不会被继承下来. synchronized ...
随机推荐
- 顶级jQuery树插件
顶级jQuery树插件 顶级jQuery树插件 2013-03-05 17:20 139人阅读 评论(0) 收藏 举报 jsTree JsTree是一个基于jQuery的Tree控件.支持HTML.J ...
- jQuery实现表格行的动态增加与删除
删除之前删除2行后: 1<script> 8 $(document).ready(function(){ 9 //<tr/>居中 10 $("#tab tr" ...
- Java 多线程之内存一致性错误
当不同的线程针对相同的数据却读到了不同的值时就发生了内存一致性错误.内存一致性错误的原因是非常复杂的.幸运的是我们程序员不需要详细的理解这些原因,我们需要做的事情就是使用策略来规避这些. 避免内存一致 ...
- leetcode第40题--First Missing Positive
题目: Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2 ...
- Play framework 2.0
Play framework 2.0北京时间3月14日消息,根据Play framework官方网站消息,目前Play framework 2.0正式版已经发布.新版本的Play framework进 ...
- 校验、AJAX与过滤器
随笔- 65 文章- 1 评论- 343 ASP.Net MVC开发基础学习笔记:四.校验.AJAX与过滤器 一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations( ...
- 值为NULL的对象指针
相信大家对NULL不会很陌生,NULL 是一个标准规定的宏定义,用来表示空指针常量,当一个指针变量被赋值为NULL时,表示它不再指向任何有效地址,无法在访问任何数据.在VS2012库文件stdio.h ...
- MEF简介及简单的Demo
MEF简介及简单的Demo 文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架).单从名字我们不难发现:MEF是专门 ...
- 缓存,spring
applicationcontext.xml xmlns:cache="http://www.springframework.org/schema/cache" xsi:schem ...
- css,js工具篇
4. web前端开发分享-css,js工具篇 web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emm ...