栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中异常的介绍和总结以及自定义使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中异常的介绍和总结以及自定义使用

异常介绍

异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。

异常理解

对于异常是java提供的一直特殊机制,目的是为了程序员更好的对程序进行优化,而在异常的实际开发时,对于新手来说又非常有难度,对于深层次的异常类之间的关系需要在开发中不断的了解

异常的处理方法在代码中都有介绍

package Absttact.com.java.Exception;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Exceptiontest05 {

	public static void main(String [] agrs) {
		m1();
	}
	public static void m1() {
		System.out.println("m1 bagin");
		try {
			m2();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			System.out.println("Not Found this text");
		}
		System.out.println("m1 end");
		
	}

	public static void m2() throws FileNotFoundException {
		System.out.println("m2 bagin");
			m3();
	  //m3()方法将FileNotFoundException错误抛出
	  //m2()方法的调用者将FileNotFoundException错误处理和抛出系统才不会报错
		System.out.println("m2 end");
	}

	public static void m3() throws FileNotFoundException  {
		new FileInputStream("D:\学习笔记\java\ws.txt");
		
	}
}

异常的自定义

package Absttact.com.java.Exception;
//自定义异常
//在实际开发中有很多sun公司没有提供的异常
public class Exceptiontest11 {

	public static void main(String [] agrs) {
		//异常的使用
		Myexceptiontest sc= new Myexceptiontest("用户名不可以是空");
		//打印异常信息
		sc.printStackTrace();
		
		MyException sd =new MyException("登录密码或密码格式错误");
		sd.printStackTrace();
		
	}
}

//异常自定义
//第一步创建一个类继承Exception或者RuntimeException
//第二步提供两个构造方法,一个有参一个无参
class Myexceptiontest extends Exception {
	//编译是异常
	Myexceptiontest (){
		
	}
  Myexceptiontest ( String  obj){
		super(obj);
	}
}

class MyException extends  RuntimeException {
	//运行是异常
	MyException(){
		
	}
	MyException(String s){
		super(s);
	}
}

异常的练习使用

package 数组与数据结构;
import java.util.Scanner;
//一维数组模拟栈结构
public class Mystack {

	// 创建一维数组
	// Object可以存放任何数据类型的数据
	private Object[] array;
	
	//栈顶,初始值为0
	private int index=0;
	
	public Object[] getArray() {
		return array;
	}
	public void setArray(Object[] array) {
		this.array = array;
	}
	
	//利用构造函数初始化对象
	public   Mystack( ) {
		//默认输入10
		System.out.println("输入数组初始化长度:");
    	Scanner sc= new Scanner(System.in);
    	int a= sc.nextInt();
    	this.array=new Object[a];
   	  System.out.println("输入数组初始化成功:");		
	}
	
   //压栈
	public  void push(Object obj) throws MystackOperationException {
    	if(this.index>=this.array.length)
    	{
    		 throw new MystackOperationException("栈满,压栈失败");
    	}
    	
    	this.array[index]=obj;
    	System.out.println("压栈成功!栈顶指向"+this.index);
    	this.index ++;
	}
 //出站
	public void   pop( Object obj) throws MystackOperationException
	{
		if(this.index<=0)
    	{
			 throw new MystackOperationException("栈空,出栈失败");
    	}
    	
		this.index --;
		System.out.println("出栈成功!栈顶指向"+this.index +"栈元素是"+this.array[index]);
    	this.array[index]=obj;
    	
    	
	}
	
	public static void main(String [] agrs) {
		Mystack a= new Mystack();
       try {
		a.push(new  Object());
		a.push(new  Object());
	    a.push(new  Object());
	    a.push(new  Object());
	    a.push(new  Object());
	} catch (MystackOperationException e) {
		// TODO 自动生成的 catch 块
		e.printStackTrace();
	}
       
        try {
			a.pop(new Object());
			 a.pop(new Object());
		        a.pop(new Object());
		        a.pop(new Object());
		        a.pop(new Object());
		} catch (MystackOperationException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
       
       
	}
}
class MystackOperationException extends  Exception{
	MystackOperationException(){
		
	}
MystackOperationException( String s){
		super(s);
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592222.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号