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

来源:互联网 发布:wii 知乎 编辑:程序博客网 时间:2024/06/06 09:12

异常处理:

关键字: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;//falses1.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是个好东西

原创粉丝点击