1.import

package com.yfs.javase;

import java.util.Scanner;

//import java.lang.String;//默认导入
public class Demo1 { public static void main(String[] args) {
String s = new String("abc");//java.lang.String
String s1 = "abc"; System.out.println("影分身");//输出
Scanner scan = new Scanner(System.in);//输入
System.err.println("我没错...");//错误流 long now = System.currentTimeMillis();
System.out.println("系统时间 " + String.format("%tF %<tT", now));
//System.exit(0); System.out.println (System.getenv("java_home")); System.out.println("程序执行到此..."); } }

2.异常

package com.yfs.javase;
//异常
//执行出现异常 jvm 终止代码执行
//报告错误原因
//机制
public class ExpDemo1 { public static void main(String[] args) {
String s = null;//没有对象
//s.toString();//NullpointException
int[] a = new int[5];
//a[5] = 20; //ArrayIndexOutOfBoundsException int b = 3;
int c = 0;
int d = b / c;//ArithmeticException System.out.println("程序执行结束...");
} }

3.运行时异常

Person 类

package com.yfs.javase;

public class Person {

	private String name;
private int age;
private char sex; public Person() { } public Person(String name) {
this.name = name;
} public Person(String name, int age, char sex) {
this.name = name;
this.age = age;
this.sex = sex;
} public void introduce() {
System.out.println("I am Person....");
} public String toString() {
return "姓名:" + name + " 年龄 :" + age + " 性别:" + sex;
} public void speak() {
System.out.println(name + " 工件了吗?");
} public void sleep() {
System.out.println(name + " 睡觉了吗?");
} public void eat() {
System.out.println(name + " 吃了吗?");
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public char getSex() {
return sex;
} public void setSex(char sex) {
this.sex = sex;
} }

类转换异常

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream; //异常分类 public class ExpDemo2 { public static void main(String[] args) {
// 运行时异常
Object obj = new Person();
// String s = (String)obj;//ClassCastException // check异常 编译时强制处理
try {
InputStream in = new FileInputStream("123.txt");
} catch (FileNotFoundException e) {
System.out.println("异常处理完成...");
e.printStackTrace();
} System.out.println("程序执行结束...");
} }

4.抛异常

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.SQLException; //抛异常 public class ExpDemo3 { public static void main(String[] args) throws FileNotFoundException {
// 谁调用谁处理 没有对象处理 jvm处理 终止程序
// try {
try {
test();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
} // 在方法抛出异常 throws 可以抛多个异常
public static void test() throws FileNotFoundException, SQLException {
int[] a = new int[3];
a[3] = 15;// 系统检查抛出异常 // 自己抛 throw
if (1 == 1) {
throw new ArithmeticException("故意抛异常");
}
// check 异常
InputStream in = new FileInputStream("123.txt");
}
}

5.异常处理

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.SQLException; //异常处理 catch 捕获异常对象 处理异常 public class ExpDemo4 { public static void main(String[] args) {
String s = "abc";
int[] a = new int[3];
//try...catch...finally
try{
a[3] = 15;//jvm创建异常对象 抛出异常 处理第一个异常
s.toString();
//可以有多个catch语句块
}
// catch (ArrayIndexOutOfBoundsException e) {//捕获异常
// //e.printStackTrace();
// System.out.println("我知道了..我是故意的");
// } catch (NullPointerException e) {
// System.out.println("字符串异常处理完成...");
// } catch (Exception e) {
// e.printStackTrace();
// // finally 总会执行
// }
finally {
System.out.println("总是执行....");
} System.out.println("程序执行结束...");
} }

6.自定义异常

package com.yfs.javase;
//自定义异常
public class ExpSelf extends Exception { public ExpSelf() {
super();
// TODO Auto-generated constructor stub
} public ExpSelf(String message, Throwable cause, boolean enableSuppression,
boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
// TODO Auto-generated constructor stub
} public ExpSelf(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
} public ExpSelf(String message) {
super(message);
// TODO Auto-generated constructor stub
} public ExpSelf(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
//String参数的构造方法
// public ExpSelf(String msg) {
// super(msg);//调用父类构造方法
// } }

7.自定义异常 测试

package com.yfs.javase;

import java.io.IOException;

public class Test {

	public static void main(String[] args) {
try {
if( 1 == 1) {
throw new ExpSelf("异常了,自己定义的...", new IOException());
}
} catch (ExpSelf e) {
//e.printStackTrace();
System.out.println(e.getMessage());
System.out.println(e.fillInStackTrace());
System.out.println(e.toString());
} } }

java新手笔记23 异常的更多相关文章

  1. JAVA自学笔记23

    JAVA自学笔记23 1.多线程 1)引入: 2)进程 是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 多进程: 单进程的计算机只能做一件事情,而现在 ...

  2. 1.13(java学习笔记)异常机制

    异常不同于错误,它是程序运行时产生的未知问题. 如果把程序比喻成一辆汽车,那么汽车开着开着突然前面出现了一个大石头挡住了路,这就叫异常. 那么出现了这个异常我们需要去处理,比如打电话给公路管理局,让它 ...

  3. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

  4. java新手笔记31 集合实现类

    Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...

  5. java新手笔记4 数组

    1.数组 import java.util.Random; public class ArrayDemo1 { public static void main(String[] args) { int ...

  6. java新手笔记1 Hello World!

    //Hello.java文件 //类声明 public class Hello{ //声明方法 main程序入口 public static void main (String[] args) { S ...

  7. 【原】Java学习笔记030 - 异常

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 异常:Java ...

  8. Java学习笔记__异常机制_try_catch_finally_return执行顺序

    package cn.xiaocangtian.Exception; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...

  9. JAVA新手笔记 Intent对象和Bundle对象

    Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...

随机推荐

  1. UVa10534 - Wavio Sequence(LIS)

    题目大意 给定一个长度为n的整数序列,求个最长子序列(不一定连续),使得该序列的长度为奇数2k+1,前k+1个数严格递增,后k+1个数严格递减.注意,严格递增意味着该序列中的两个相邻数不能相同.n&l ...

  2. 把普通的git库变成bare库

    $ cd your_repo $ mv .git .. && rm -fr * $ mv ../.git . $ mv .git/* . $ rmdir .git $ git conf ...

  3. 100个常用的linux命令

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  4. Android:从程序员到架构师之路Ⅰ

    一般而言,人们大多先学开发(代码)的技术,随后才学(架构)设计的方法.然而,在实际做事时,却是先设计,随后才写出代码来.敏捷过程则让设计与写码迭代循环下去,一直到完成为止.在本课程里,就遵循敏捷的迭代 ...

  5. Robot Framework自动化测试(三)--- 封装系统关键字

    之前对robotframework-ride了解的不多,后来知道了引入Selenium2Lirary库后可以做web UI自动化测试,但发现和python没啥关系,今天学习了封装系统关键字算是和pyt ...

  6. 【面试虐菜】—— MongoDB知识整理

    为什么我们要使用MongoDB? 特点: 高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存储,易存储对象类型的数据. 模式自由. 支持动态查询. 支持完全索引,包含内部对象. 支 ...

  7. PS Studio打包程序 .net版本依赖

    PS Studio打包好的程序(Win7下),拿到Windows Server 2003(PS2.0),如果提示”.Net framework初始化错误“,则需要安装 .net 3.0 如果是PS3. ...

  8. android104 帧动画,补间动画,属性动画

    ##帧动画FrameAnimation* 多张图片快速切换,形成动画效果* 帧动画使用xml定义 package com.itheima.frameanimation; import android. ...

  9. Callgrind 使用 2

    Callgrind是一款和gprof类似的性能分析工具,与gprof不同的是它不需要在编译源码时附加特殊选项,但推荐加上调试选项.Callgrind使用cachegrind的统计信息Ir(I cach ...

  10. 文件和目录之chdir、fchdir和getcwd函数

    每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点(不以斜杠开始的路径名为相对路径名).当用户登录到UNIX系统时,其当前工作目录通常是口令文件(/etc/passwd)中该用户登录项的第 ...