A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒙武辉 黑马帝   /  2012-2-17 02:02  /  3193 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
        }
}

8 个回复

倒序浏览
你这么写表示你的方法会抛异常,谁调用它 从谁那里 try catch
回复 使用道具 举报
异常有两种不同的表示,一种是exception一种是RuntimeException,
RuntimeException是编译期不处理的异常,因为出现这样的异常一般是程序运行不下去的异常
所以一般设定为运行期异常,出错,需要程序员修改代码。
回复 使用道具 举报
你这个异常是在方法里抛出的,如果有对象去调用这个方法,那么可以在调用这个方法的时候去捕捉;或者接着抛。但最终只能会抛到虚拟机。
回复 使用道具 举报

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

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

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
这个是运行时异常,编译时不用标识出来,也不用去处理,jvm会自动处理。因为即使我们自己处理,我们也没办法,处理了没有意义
回复 使用道具 举报
这段代码没什么问题的,当该方法可能会抛出RuntimeException类异常时,编译时系统不检测改异常,程序运行时如果抛出异常,系统会结束程序运行,需要用户调整对抛出异常的方法的调用方式(这属于用户非法操作)。
回复 使用道具 举报
成果 黑马帝 2012-2-17 09:46:21
8#
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:01
9#
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(错误方法类型异常)

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马