java异常处理的几种方法
try....catch throws fainally
1.用try --catch处理异常
适合处理程序员可以控制和用户输入有误的情况,以起到程序来发顺利进行和避免不必要情况的发生
try{
//如果里面有异常就执行catch里的语句
}catch(Exception e){//exception
}
2.用throws处理异常
throws是处理异常的两种方法之一,它的处理方法是将异常抛给上一级处理,如都不能处理,最终抛给虚拟机处理,这个过程我们称为抛异常。这种方法适合比较严重的异常和程序员无法预料或无法完全避免异常发生的情况,以及无法处理的异常。
都是用在方法中
import java.util.*;
class A{
void a() throws Exception //往上抛
{
int a,b,c;
Scanner in=new Scanner(System.in);
a=in.nextInt();
b=in.nextInt();
c=a%b;
System.out.println(c);
}
}
public class Throws {
public static void main(String[] args)//throws Exception 抛到虚拟机
{
// TODO Auto-generated method stub
A aa=new A();
try{
aa.a();//调用A里面的a
}catch(Exception e){
System.out.println("输入有误");
}
System.out.println("顺利进行");
}
}
3.Finally 的用法
Finally语句是起到异常出口的作用,用在try..catch语句的最后,无论是否出现异常(catch中的语句是否被执行),finally中的语句都会被执行,这样可以更好的控制程序的走向。
import java.util.*;
class A{
void a() //throws Exception //往上抛
{
int a,b,c;
Scanner in=new Scanner(System.in);
a=in.nextInt();
b=in.nextInt();
c=a%b;
System.out.println(c);
}
}
public class Throws {
public static void main(String[] args)//throws Exception 抛到虚拟机
{
// TODO Auto-generated method stub
A aa=new A();
try{
aa.a();//调用A里面的a
}catch(Exception e){
System.out.println("输入有误");
}
finally{//无论是否出现异常(catch中的语句是否被执行),finally中的语句都会被执行
System.out.println("顺利进行");
}
}
}
4.equlas方法(1)
java中一般情况下,不可以再用==来比较是否相等的情况,而是要用equals方法来比较,equals方法属于object类并且不是final类型,所以任何类都可以继承并且覆盖该方法。
package zhou.fei;
class B{
private int i;
B(int i){
this.i=i;
}
public boolean equals(B b2){
//两个对象的i进行比较
if(this.i==b2.i)
return true;
else
return false;
}
}
public class Equals1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b1=new B(20);
B b2=new B(20);
//System.out.println(b1==b2);
//对象之间不可以再用“==”来进行比较。因为这样比较的对象的内存地址。而不是对象中的具体属性。
System.out.println(b1.equals(b2));
//覆盖后的equals方法比较的不再是两个对象的内存
try....catch throws fainally
地址,而是根据自己的需求来决定。
//在这里比较的是变量i的值,当两个对象的i都等于20.此时两个对象的比较结果返回了true
}
}
5.equals(2)
equals方法在一般情况下都需要覆盖成自己想要的方法。而且配合多态可以实现强大的“比较”功能。可以比较类中的任何数据,可以根据自己的需求来定义两个对象是否相等的条件。
package zhou.fei;
class B{
private int i;
B(int i){
this.i=i;
}
public boolean equals(B b2){
//两个对象的i进行比较
if(this.i==b2.i)
return true;
else
return false;
}
}
class C extends B{
//继承C
private int j;
C(int j){
super(j);
//初始化父类中有参的构造方法
this.j=j;
//初始化 j
}//多态
public boolean equals(B b2){
//让父类的引用指向子类的对象
//两个对象的i进行比较
C c=(C)b2;
if(this.j==c.j)
return true;
else
return false;
}
}
public class Equals1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b1=new B(20);
B b2=new B(20);
//System.out.println(b1==b2);
//对象之间不可以再用“==”来进行比较。因为这样比较的对象的内存地址。而不是对象中的具体属性。
System.out.println(b1.equals(b2));
//覆盖后的equals方法比较的不再是两个对象的内存地址,而是根据自
己的需求来决定。
//在这里比较的是变量i的值,当两个对象的i都等于20.此时两个对象的比较结果返回了true
C c1=new C(20);
C c2=new C(21);
System.out.println(c1.equals(c2));
}
}
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




