黑马程序员技术交流社区

标题: 关于java的RuntimeException? [打印本页]

作者: 蒙武辉    时间: 2012-2-17 02:02
标题: 关于java的RuntimeException?
class Student  implements Comparable
{
        private String name;
        private int age;
        Student(String name,int age)
        {
                this.name=name;
                this.age=age;
        }
        public int compareTo(Object obj)
        {
                if(!(obj instanceof Student))
                                        throw new RuntimeException("no student");//这里不用捕捉异常了吗?如果不用,抛出给哪个处理呢?
                Student s=(Student)obj;
                if(this.age>s.age)
                        return 1;
                if(this.age==s.age)
                        return this.name.compareTo(s.name);
                return -1;

        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}
作者: 丁晓宇    时间: 2012-2-17 02:06
你这么写表示你的方法会抛异常,谁调用它 从谁那里 try catch
作者: 彭嘉聪    时间: 2012-2-17 02:46
异常有两种不同的表示,一种是exception一种是RuntimeException,
RuntimeException是编译期不处理的异常,因为出现这样的异常一般是程序运行不下去的异常
所以一般设定为运行期异常,出错,需要程序员修改代码。
作者: 戚雪晖    时间: 2012-2-17 08:15
你这个异常是在方法里抛出的,如果有对象去调用这个方法,那么可以在调用这个方法的时候去捕捉;或者接着抛。但最终只能会抛到虚拟机。
作者: 吴文华    时间: 2012-2-17 09:21

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过,这种异常可以通过改进代码实现来避免。


作者: 黄锦成    时间: 2012-2-17 09:39
这个是运行时异常,编译时不用标识出来,也不用去处理,jvm会自动处理。因为即使我们自己处理,我们也没办法,处理了没有意义
作者: 姚立明    时间: 2012-2-17 09:45
这段代码没什么问题的,当该方法可能会抛出RuntimeException类异常时,编译时系统不检测改异常,程序运行时如果抛出异常,系统会结束程序运行,需要用户调整对抛出异常的方法的调用方式(这属于用户非法操作)。
作者: 成果    时间: 2012-2-17 09:46
RunTimeException 运行时异常
是在程序运行时发生了错误,需要修改代码:
AnnotationTypeMismatchException,(注释类型不匹配异常)

ArithmeticException,(算法异常)

ArrayStoreException,(数组存储异常)

BufferOverflowException(内存上溢出异常),

BufferUnderflowException,(内存下溢出异常)

CannotRedoException, (不能重做,重新装饰异常)

CannotUndoException, (不能撤销异常)

ClassCastException(类转换抛出异常),

CMMException,(能力成熟度模型异常)

ConcurrentModificationException(并发修改异常),

DataBindingException(数据包装异常),

DOMException(文档对象模型异常),

EmptyStackException(空栈异常),

EnumConstantNotPresentException(枚举常量不变不能使用缺少的枚举常量异常),

EventException(事件异常),

FileSystemAlreadyExistsException(文件存在异常),

FileSystemNotFoundException(文件没有发现异常),

IllegalArgumentException,(非法参数异常)

IllegalMonitorStateException(不合法的监听器异常),

IllegalPathStateException(不合法的路径状态异常),

IllegalStateException(不合法的状态异常),

ImagingOpException(成像异常),

IncompleteAnnotationException(不完全注释异常),

IndexOutOfBoundsException(指针越界异常),

JMRuntimeException(由JMX 实现所发出的运行时异常),


LSException(路由异常),

MalformedParameterizedTypeException,

MirroredTypeException,(映射类型异常)

MirroredTypesException(映射类型异常),

MissingResourceException(没有来源异常),

NegativeArraySizeException(负数组长度异常),

NoAccessException(没有数据库异常),

NoSuchElementException(没有这种元素异常),

NoSuchMechanismException(没有这种机制异常),

NullPointerException(空指针异常),

ProfileDataException(剖面数据异常),

ProviderException(提供者异常),

ProviderNotFoundException(提供者没有发现异常),

RasterFormatException(光栅格式异常),

RejectedExecutionException(拒接执行异常),

SecurityException(安全异常),

SystemException(系统异常),

TypeConstraintException(类型约束异常),

TypeNotPresentException(类型没有异常),

UndeclaredThrowableException(没有定义异常异常),

UnknownEntityException(不知道入口),

UnmodifiableSetException(不能修改异常),

UnsupportedOperationException,(不支持操作异常)

WebServiceException(错误的方法异常),

WrongMethodTypeException(错误方法类型异常)
作者: 成果    时间: 2012-2-17 09:47
AnnotationTypeMismatchException,(注释类型不匹配异常)

ArithmeticException,(算法异常)

ArrayStoreException,(数组存储异常)

BufferOverflowException(内存上溢出异常),

BufferUnderflowException,(内存下溢出异常)

CannotRedoException, (不能重做,重新装饰异常)

CannotUndoException, (不能撤销异常)

ClassCastException(类转换抛出异常),

CMMException,(能力成熟度模型异常)

ConcurrentModificationException(并发修改异常),

DataBindingException(数据包装异常),

DOMException(文档对象模型异常),

EmptyStackException(空栈异常),

EnumConstantNotPresentException(枚举常量不变不能使用缺少的枚举常量异常),

EventException(事件异常),

FileSystemAlreadyExistsException(文件存在异常),

FileSystemNotFoundException(文件没有发现异常),

IllegalArgumentException,(非法参数异常)

IllegalMonitorStateException(不合法的监听器异常),

IllegalPathStateException(不合法的路径状态异常),

IllegalStateException(不合法的状态异常),

ImagingOpException(成像异常),

IncompleteAnnotationException(不完全注释异常),

IndexOutOfBoundsException(指针越界异常),

JMRuntimeException(由JMX 实现所发出的运行时异常),


LSException(路由异常),

MalformedParameterizedTypeException,

MirroredTypeException,(映射类型异常)

MirroredTypesException(映射类型异常),

MissingResourceException(没有来源异常),

NegativeArraySizeException(负数组长度异常),

NoAccessException(没有数据库异常),

NoSuchElementException(没有这种元素异常),

NoSuchMechanismException(没有这种机制异常),

NullPointerException(空指针异常),

ProfileDataException(剖面数据异常),

ProviderException(提供者异常),

ProviderNotFoundException(提供者没有发现异常),

RasterFormatException(光栅格式异常),

RejectedExecutionException(拒接执行异常),

SecurityException(安全异常),

SystemException(系统异常),

TypeConstraintException(类型约束异常),

TypeNotPresentException(类型没有异常),

UndeclaredThrowableException(没有定义异常异常),

UnknownEntityException(不知道入口),

UnmodifiableSetException(不能修改异常),

UnsupportedOperationException,(不支持操作异常)

WebServiceException(错误的方法异常),

WrongMethodTypeException(错误方法类型异常)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2