逆袭之旅DAY28.XIA.异常处理
2018-07-24 14:42:24

第一种:
第二种:
第三种:







执行
try--catch--finally--return(执行return 退出方法)














代码示例:
输入数字,输出对应课程
1.如果输入的不是数字,抛出异常
2.如果输入的是数字,但数字没有对应的课程,抛出异常
throw new Exception();
catch 捕获对应异常,处理 或者 在方法声明的时候抛出异常类型,由方法的调用者处理异常
package day09.com.neusoft.test;
import java.util.Scanner;
public class InOutException {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入课程代号(1~3):");
try {
int a = input.nextInt();
if(a==1||a==2||a==3){
switch(a) {
case 1:
System.out.println("JAVA编程");
break;
case 2:
System.out.println("ORACLE数据库");
break;
case 3:
System.out.println("C语言编程");
break;
}
}else {
throw new Exception();
}
}catch(Exception e) {
System.out.println("您的输入不合法!");
}
System.out.println("欢迎提出建议!");
}
}
log4j
步骤:
1.在项目的目录下新建 lib文件夹
2.log4j.jar--->lib
3.build path 构建路径
4.log4j.properties--->项目目录或(包目录)下

package day09.com.neusoft.test; import org.apache.log4j.Logger; /**
* 数组下标越界异常
* @author ljj
*
*/
public class ArrayExcaption {
private static Logger jbit = Logger.getLogger(ArrayExcaption.class.getName());
public static void main(String[] args) { int[] arr = new int[] {1,2,3,4,5};
jbit.debug("数组的第一个值:"+arr[0]);
try {
//遍历数组
for(int i=0;i<=arr.length;i++){
System.out.println(arr[i]);
}
} catch (ArrayIndexOutOfBoundsException e) {
jbit.error("数组下标越界!",e);
//System.out.println("数组下标越界!"+e.getMessage());
}catch(Exception e) {
//e.getStackTrace();
jbit.error(e.getMessage());
}finally {
System.out.println("欢迎使用本程序!");
} } }
jbit是文件名
package day09.com.neusoft.test; import java.util.InputMismatchException;
import java.util.Scanner; import org.apache.log4j.Logger; /**
* 除法运算
* @author ljj
*
*/
public class InputaErrorException {
private static Logger logger = Logger.getLogger(InputaErrorException.class.getName());
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in); //
try {
System.out.println("请输入被除数:");
int a = input.nextInt();
System.out.println("请输入除数:");
int b = input.nextInt();
System.out.println("a/b="+a/b);
logger.info("a/b="+a/b);
}catch(InputMismatchException ie) {
logger.error(ie.getMessage()); }catch(ArithmeticException ae) {
logger.warn(ae.getMessage());
} } }
try{
}finally{
}
可以这样用
逆袭之旅DAY28.XIA.异常处理的更多相关文章
- 逆袭之旅DAY.XIA.Object中常用方法
2018-07-31
- 逆袭之旅DAY31.XIA.JDBC
2018-07-31 MySQL package oop_emp.com.neusoft.dao; import java.sql.Connection; import java.sql.Driver ...
- 逆袭之旅DAY30.XIA.集合
2018年7月26日 面试题:List和set的区别 ArrayList 遍历效率较高,但添加和删除较慢 遍历集合最高效的方法:迭代器 集合的遍历: 迭代器:Iterator 创建 为什么使用泛型: ...
- 逆袭之旅DAY24.XIA.二重进阶、双色球
一. 选择题. 1. 以下关于二重循环的说法正确的是(D). A. 二重循环就是一般程序中只能有两个循环 B. While循环不能嵌套在for循环里 C. 两个重叠的循环不能嵌套在第三个循环里. D. ...
- 逆袭之旅DAY24.XIA.数组练习
2018-07-20 08:40:19 1. public void stringSort(){ String[] s = new String[]{"George"," ...
- 逆袭之旅DAY20.XIA.程序调试
2018-07-16 20:25:50 F5:进入方法 F6:单步执行
- 逆袭之旅DAY20.XIA.循环结构
2018-07-16 19:53:47 while循环 do do...while循环 for 循环
- 逆袭之旅DAY20.XIA.选择结构
2018-07-16 18:50:49 本章目标: 基本if选择结构 逻辑运算符 多重if选择结构 嵌套if选择结构 什么是if选择结构: if选择结构是根据条件判断之后再做处理 import ja ...
- 逆袭之旅DAY20.xia.师父指导.数据类型
2018-07-16 09:35:57 基础是王道 从码农--软件工程师--软件架构师 String 首字母大写,特殊引用类型,常量类 二.数组 存钱罐(只能放钱) 数据兼容 数组的长度(定义后长度 ...
随机推荐
- 【转】VC 利用DLL共享区间在进程间共享数据及进程间广播消息
1.http://blog.csdn.net/morewindows/article/details/6702342 在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享 ...
- JAVA创建子进程并处理waitFor() 阻塞问题
虽然很想休息,但是想想还是要把今天学的东西记下来,不然以后再用还是新知识. 新建一个线程类读取子进程的汇报信息和错误信息,避免阻塞 class StreamGobbler extends Thread ...
- python 多进程和多线程
在计算大量数据时,可以使用多进程 多线程机制来加速计算 多进程 import multiprocessing import os def run_proc(name): print('Child pr ...
- 牛客OI周赛4-提高组 B 最后的晚餐(dinner)
最后的晚餐(dinner) 思路: 容斥 求 ∑(-1)^i * C(n, i) * 2^i * (2n-i-1)! 这道题卡常数 #pragma GCC optimize(2) #pragma GC ...
- Codeforces 833 C - Ever-Hungry Krakozyabra
思路: 首先,inedible tails 的个数最多为C(18+9,9)个(用隔板法),所以我们暴力出所有的 inedible tails,然后检查一下在[L, R]这段区间是否存在这个inedib ...
- Codeforces 813E - Army Creation
813E - Army Creation 思路: 线段树+二分 先预处理每个点往后走k步的下标 线段树二叉树的每个节点用vector维护这些下标,给这些下标排个序 询问区间L,R,那么把下标小于等于R ...
- ES6 学习笔记(整理一遍阮一峰大神得入门文档,纯自己理解使用)
1.let命令 1)let和var的区别:let声明的变量只有所在的代码块有效. 2)没有变量的提升,一定要声明后使用.使用let命令声明变量之前,该变量都是不可用的.形成“暂时性死区”. 3)typ ...
- linux中tar命令(打包、压缩、解压)、zip和unzip、rar多种压缩文件
一.名词解释 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文件进行压缩,这 ...
- <%@page contentType="text/html;charset=gbk"%> 与 <meta http-equiv="Content-Type" content="text/html; charset=GBK">区别
前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流, 后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面
- [maven] introduction to the standard directory layout
The next section documents the directory layout expected by Maven and the directory layout created b ...