Java基础-异常处理、常用类

异常处理:

关键字:try+catch、throws、throw、finally

声明方法抛出异常(查JDK):

public void someMethod() throws someException{ //声明方法可能引发异常,不处理,抛出
     if(someCondition()){ //方法内部的异常
         throw new SomeException("xxxx"); //抛出异常
    }
}
包含代码段/调用方法处理异常:(方法未处理,只抛出异常)
 try{
     someMethod();
}catch (someException e){ //要先catch子类异常
    `````//异常处理代码
     e.printStackTrace();//打印所有堆栈信息
}catch (someException e){ //再catch父类异常
    ````
}finally{
    //一定会运行的代码
}

当前无法处理异常,则通过throws向上(调用它的函数)抛出,由上级处理
这里写图片描述

异常类:Throwable
异常类的子类:Error(系统内部错误) Exception(异常)
异常:RuntimeException(运行时异常,可以不catch)、编译异常:JDK后面有throws的异常,必须catch

重写:子类重写父类的方法,如果是编译异常,必须抛出同样的异常,或不抛出异常

throws:抛出异常
catch:处理异常

例子:

void m(int i) throws ArithmeticException{ //先申明下面的代码段会有ArithmeticException抛出
     if( i == 0 )
         throw new ArithmeticException(“除数不能为0”);//这段文字可以用getMessage()得到

自定义的异常:继承Exception

常用类

字符串相关类:String,不可变的字符序列
常用方法:charAt(index)获取字符、indexof(String)获取索引、substring(index,index)获取字符串、spilt()分割字符串

==:引用的比较
例:

String s1 = "Hello"; String s2 = "Hello";
s1 == s2; //true,"Hello"已经在“池”存在后,s1、s2都会指向它
s1 = new String("Hellow"); s2 = new String("Hello"); //new出来的对象在堆里
s1 == s2;//false
s1.equals(s2);//true

String字符串改变:
例如:当执行s1+=s2,实际上,String不可变。这种操作是开辟新的内存区域放入s1和s2的内容,s1再指向新区域,效率低下

StringBuffer,可变字符序列,解决上述问题
常用方法:append()、insert()、delete()

包装类(在JDK软件包 java.lang 中,存储于):
Integer、Double等,这些类封装了一个相应的基本数据类型(int、double,存储于栈)作为对象,并提供系列操作

Math类:java.lang.Math

File类:java.io.File类代表系统文件名(路径和文件名)
new File 相当于在内存创建一个File,要实际判断和创建,用exists和createNewFile
完整写法:

String separator = File.separator; //各系统通用路径分隔符
String filename = "myfile.txt";
String directory = "mydir1"+separator+"mydir2"; //父路径推荐写法,代替正/反斜杠
File f = new File(directory, filename);

父路径是相对于.class源文件的,如果.class在包里,则是相对于包(包名.类名 被视为整体)

Enum类:java.lang.Enum
定义:

public enum className {val1, val2, val3};

获取:

className vn = className.val1;

总结:JDK是个好东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值