如果有时学东西概念太多了,可以反着学,从结果到过程,从代码到概念,也许就不会那么枯燥了,比如学反射的时候。

java异常复习

异常和错误的区别?

异常:程序或环境本身出现错误。(程序员可以捕获并处理)

错误:内部系统错误。(程序员不用做什么,程序员通知用户关掉它即可。)

类Scanner、nextInt用法及其含义:

import java.util.Scanner;
public class TestException2{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//
int a,b;
try{
System.out.println("输入被除数:");
a=input.nextInt();
System.out.println("输入除数:");
b=input.nextInt(); System.out.println("两数相除结果为:"+a/b);
}catch(InputMismatchException e){
System.out.println("你输入的不是数字,这里必须是数字。");
}
} }

/*

类Scanner:一个可以使用正则表达是来解析基本类型

和字符串的简单文本扫描器。

如:用户能够从System.in中读取一个数:

Scanner sc=new Scanner(System.in);

int i=sc.nextInt();

//nextInt():类java.util.Random中的方法,返回下一个伪随机数(这里的随机是相对的)

随机数生成器中的一个均匀分布的一个int值

下面是从一个字符串读取若干项的例子:

String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();

输出为:

1

2

red

blue

是如何实现跳读的?

*/

异常语法格式总结:

try{

//程序需要执行的代码,可能有错

}catch(异常类 变量名){

//若出现异常类,要执行的代码块

}

//异常类自定义或继承Exception类或子类定义的,

异常对象一是运行时环境自动抛出的,比如除数不能为零,二是用户自定义的。

finally任何情况下必须执行的代码,finally唯一不被执行的情况是存在System.exit()终止了JVM的运行。

import Java.util.InputMismatchException;
import Java.util.Scanner; public class TestException{
public static void main(String[] args){
Scanner input=new Scanner(System.in); int a,b; try{
System.out.println("输入被除数:");
a=input.nextInt();
System.out.println("输入除数:");
b=input.nextInt();
System.out.println("两数相除结果为:"+a/b);
}
catch (InputMismatchException e) {
System.out.println("你输入的不是数字,这里必须是数字!");
}catch(ArithmeticException e){
System.out.println("你输入的数字除数为0");
Sytem.out.println(e.getMessage());
}catch (Exception e) {
System.out.println("程序出错了!")
}finally{
System.out.println("无论异常与否,都会执行这里!");
}
}
}

4.throws

有些异常用户不想处理时,用户可能没办法处理或者不想处理,则可以把方法头加上throws语句来放弃本方法处理。

import Java.util.InputMismatchException;
import Java.util.Scanner; public class TestException{
public static void main(String[] args) throws InputMismatchException,
ArithmeticException,Exception{
Scanner input=new Scanner(System.int);
int a,b; System.out.println("输入被除数:");
a=input.nextInt();
System.out.println("输入除数:");
b=input.nextInt();
Sysem.out.println("两数相除的结果是:"+a/b); }
}

如果JVM追溯到调用栈最底部main方法时,仍没有找到异常代码块,则

1)调用异常对象printStackTrace()方法,打印方法调用栈的异常信息。

2)如果出现异常线程为主线程,则程序运行终止;若非主线程,则终止,让其他线程继续。

说明:用throws是一种消极的异常用法,所以不提倡,且耗资源和时间多。

(增加了JVM的运行时间)

5.自定义异常:类java.lang.Throwable是所有类的基类,它包括两个子类:Exception和Error。Exception是

                    描述程序捕获的异常,如ClassNotFoundException。Error类用于指示合理应用程序但是由于

                    JVM出现的错误,比如虚拟机错误VirtualMachineError。(错误不允许程序员捕获)

                    自定义异常可以继承Throwable类或Exception,而不要继承Error类。且自定义异常间可以有继承。

public要为自定义异常设计工作函数,为方便构造自定义异常对象。

public class MyException extends exception{

 public MyException(){

  super();

 }

 public MyException(String msg){

  super(msg);

 }

}

上面这种MyException类才叫异常类,异常类通过throw关键字来手动抛出异常

手动抛出异常语法格式:

throw new 异常类();

如:

public void setAge(int age) throws MyException{
if(age<0 || age>100){
throw new MyException(“年龄不符合要求”);
}else{
this.age=age;
}
} …
//测试类中
try{
t1.setAge(1000);
}catch(MyException e){
e.printStackTrace();
}

或者

在测试类中用throws来继承MyException,交给JVM来处理

即public static void main(String[] args)throws MyException{…}

java异常复习的更多相关文章

  1. Java异常之自定义异常

    哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...

  2. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  3. Java异常的10个关键知识点

    前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...

  4. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  5. java基础复习记录

    java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...

  6. 浅谈java异常[Exception]

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...

  7. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  8. Java异常体系及分类

    上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...

  9. 第11章 Java异常与异常处理

    1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...

随机推荐

  1. 寻找 IBatisNet 批量插入(批量复制) 的心路历程

    1.IBatisNet本身就是一个比较早的ORM框架,再加上是从java iBatis移值过来的,其流行程度不是特别高资料也不是很多(一年前),不过最近好像搜索比较多了一些(可能是训练的结果吧) 2. ...

  2. 一个sfm开源项目

    Structure from Motion 资料总结 https://blog.csdn.net/u014636245/article/details/77527627 github上用opencv实 ...

  3. PHP程序员应该知道的15个库

    最几年,PHP已经成为最受欢迎的一种有效服务器端编程语言.据2013年发布的一份调查报告显示,PHP语言已经被安装在全球超过2.4亿个网站以及210万台Web服务器之上.PHP代表超文本预处理器,它主 ...

  4. 《Nginx - location配置》

    一:Location 作用 - location 定位 ,也就是可以通过不同URL进行定位,可以很大的增加它配置的灵活性. 二:相关变量 示例: http://192.168.27.27/xxxx $ ...

  5. automation轻松“一点”,搞定裸机安装系统

    企业在新建数据中心.新业务上线.老业务扩容等场景下,会采购一批新的裸机服务器,在新服务器投入使用之前,势必得进行操作系统的安装.相信每个人都有安装操作系统的经历,BIOS设置.磁盘分区.驱动安装... ...

  6. 洛谷P4147 玉蟾宫 单调栈/悬线法

    正解:单调栈/悬线法 解题报告: ummm这题我当初做的时候一点思路也没有只会暴力出奇迹:D(啊听说暴力好像能水过去呢,,, 然后当初是看的题解,然后学了下悬线法 然后就忘了:D 然后我现在看发现看不 ...

  7. matplotlib基本使用方法

    [微语]人生有可为之事,也有不可为之事.可为之事,当尽力为之,此谓尽性,不可为之事,当尽心为之,此谓知命. 三人行必有我师 官方参考API:https://matplotlib.org/tutoria ...

  8. java8,方法引用

    1:方法引用,https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html 当我们使用lambda表达式去创建一个 ...

  9. Scala系统学习(四):Scala数据类型

    Scala与Java具有相同的数据类型,具有相同的内存占用和精度.以下是提供Scala中可用的所有数据类型的详细信息的表格: 序号 数据类型 说明 1 Byte 8位有符号值,范围从-128至127 ...

  10. SqlAlchemy个人学习笔记完整汇总-转载

    使用 sqlalchemy 有3种方式: 方式1, 使用raw sql; 方式2, 使用SqlAlchemy的sql expression; 方式3, 使用ORM.   前两种方式可以统称为 core ...