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

eclipse异常类之自定义异常和assert

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

eclipse异常类之自定义异常和assert

1、在实际开发中,可以利用异常的处理机制来处理业务逻辑错误,就是使用自定义异常(例如用户名密码输入错误)

public class MyException extends Exception{
		public MyException() {
			super();	
		}
		public MyException(String massage ) {
			super(massage);
		}
}

public class UserService {

	public User login(String username,String password)throws MyException {
		if(!"abcd".equals(username)) {
			throw new MyException("用户名错误");
		}
		if(!"1234".equals(password)) {
			throw new MyException("密码错误");
		}
		User user=new User("abcd","1234",18,"男");
		return user;
	}
}

public class User {
	private String username;
	private String password;
	private int age;
	private String sex;
	
	public User() {
		super();
	}
	public User(String username, String password, int age, String sex) {
		super();
		this.username = username;
		this.password = password;
		this.age = age;
		this.sex = sex;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
    @Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + ", age=" + age + ", sex=" + sex + "]";
	}
}

import java.util.Scanner;

public class LoginDemo {

	public static void main(String[] args) {
			
		Scanner input=new Scanner(System.in);
		System.out.println("请输入用户名");
		String name=input.nextLine();
		System.out.println("请输入密码");
		String pass=input.nextLine();
		
		UserService us=new UserService();
		try {
		User user=us.login(name, pass);
		System.out.println("登录成功");
		System.out.println(user);
	}catch(MyException e) {
		e.printStackTrace();
		}
	}

}


2、受检异常(Exception)和非受检异常(RuntimeException)

Exception:在编译期检查,在调用抛出这个异常的方法时,必须使用try、、、catch

RuntimeException:在运行期检查,在调用抛出这个异常的方法时,不可以使用try、、、catch

在使用自定义异常时,根据实际的业务需求,来决定使用哪一个作为父类

public class MyException extends RuntimeException{
		public MyException() {
			super();	
		}
		public MyException(String massage ) {
			super(massage);
		}
}
~~~~~~~~~~~~~~~~~~~~~~~~


import java.util.Scanner;

public class LoginDemo {

	public static void main(String[] args) {
			
		Scanner input=new Scanner(System.in);
		System.out.println("请输入用户名");
		String name=input.nextLine();
		System.out.println("请输入密码");
		String pass=input.nextLine();
		
		UserService us=new UserService();
		
		User user=us.login(name, pass);
		System.out.println("登录成功");
		System.out.println(user);
	
	}

}

3、assert

assert关键字,表示断言

    当程序执行到某个位置的时候,程序中的某个变量的取值肯定是预期的结果,那么这种操作可以使用断言完成

assert的表达式:

public class AsserDemo {

	public static void main(String[] args) {
		
		int result =add(10,8);
		assert result==10:"结果不正确";
		
	}

	
	private static int add(int a,int b) {
		return a+b;
	}
}

这样直接运行没有结果

运行程序是需要添加JVM参数-ea,断言才能起效果

 

 

 

 

 

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

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

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