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

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. TOP100summit:【分享实录-封宇】58到家多端消息整合之路

    本篇文章内容来自2016年TOP100summit 58到家架构师封宇的案例分享. 编辑:Cynthia 2017年11月9-12日北京国家会议中心第六届TOP100summit,留言评论有机会获得免 ...

  2. MapReduce规约

    深入了解Combiners编程(相当于Map端的Reduce) 每一个map可能会产生大量的输出,combiner的作用就是在map端对输出先做一次合并,以减少传输到reducer的数据量. comb ...

  3. PAT-GPLT L1-033 - 出生年 - [简单模拟]

    题目链接:https://www.patest.cn/contests/gplt/L1-033 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  4. 新购买的vps应该做的几件事情

    1. 修改root密码      passwd   root 2.新建用户     useradd  vinentguo 3.配置免密码登陆 .使用新建用户登陆vps. mkdir ~/.ssh/ch ...

  5. OKEx货币对价格数量长度及精度

    长度 precisions = [["bch_btc","0.001","0.00000001"], ["ltc_btc" ...

  6. CH0201 费解的开关 枚举

    正解:枚举 解题报告: 入门傻逼题,思维难度不高代码量极小,非常适合上手 然后傻逼的我第二次看这道题的时候依然没想到解法:D 没有办法,就想着写个笔记好歹记录一下以后多复习几次就记着了趴qwq 就是, ...

  7. nodejs(五)同步异步--USING SETTIMEOUT INSTEAD OF SETINTERVAL TO FORCE SERIALIZATION

    Let’s say you want a function that does some I/O — such as parsing a log fi le — that will periodica ...

  8. 几种常见web攻击手段及其防御方式

    XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...

  9. "portrait"(竖屏) "landscape"(横屏) css设置

    取决于浏览器或者设备的方向,HTML元素总是会有"portrait"(竖屏) "landscape"(横屏) class. 你可以在css中如下使用它们: .p ...

  10. 新版微信小程序即将上线 新增微信支付功能

    <经济参考报>消息,新版微信小程序正在测试中,有可能将在近期正式上线.新版小程序增加了“附近门店”功能的接口,微信用户可以通过定位功能,查看提供线下服务的各类门店,并直接利用小程序实现包括 ...