在java中异常是程序设计的一个重要的一个重点,在java中,所有的异常都可以
用一个类来表示。不同类型的异常对应不同的子类异常。
异常主要有两个来源,一个是java运行时的环境自动抛出系统生成的异常,
而不管程序员是否愿意捕获和处理。
还有一种是程序员自己定义的,也可以是java语音自己定义的异常,用throw
关键字来抛出,这种异常主要是来向调用者报告某些异常的信息。
java语言中不同的异常有不同的分类,每个异常都对应一个异常对象,
任何异常对象都是java.lang.Throwable类或者子类的对象,即所有异常类型都是
内置类Throwable类的子类。
在Throwable类中,通常把异常分为两个不同的分类,Exception和 Error
Throwable是所有异常和错误的超类,分别有一个错误Error和一个异常Exception子类
而其中的异常子类有分为运行时异常RuntimeException和非运行时异常,Exception是
所有异常的父类,定义了各种各样的可能出现异常的异常事件,一般要用户显示的声明和捕获
一;运行时异常
运行时异常是Runtime类以及其子类的异常,这些异常是不检查异常,在程序中可以选择捕获和处理
也可以不捕获和处理,显示的声明和捕获会对程序的可读性和运行效率影响很大,因此这些异常由系统
自动检测并交给默认的异常进行处理,这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这些异常的发生
二:非运行时异常
它是RuntimeException意外的异常,从类型上将属于Exception类及其子类,从程序语法上将必须是进行处理的异常,如果不处理
程序就不会编译通过。、
代码如下
class Demo{
public static void main(String[] args) {
try
{
FeiQ.feiq("192.168.10.122");
FeiQ.feiq(null);
}
catch (NoNetworkException noNet)
{
System.out.println(noNet.toString());
System.out.println(noNet.extraMessage);
System.out.println("SB, 请把网线插上!");
}
System.out.println("Hello World!");
}
}
class NoNetworkException extends Exception
{
//提供这个异常的一些额外的信息
String extraMessage;
//提供对应的构造方法
public NoNetworkException(String message, String extra){
super(message);
extraMessage = extra;
}
public NoNetworkException(){
}
}
class FeiQ
{
public static void feiq(String ip) throws NoNetworkException{
if (ip == null)
{
//抛出 网络问题的异常
throw new NoNetworkException("没有网络", "额外信息:没插网线!");
}
System.out.println("恭喜登录成功!");
}
}
用一个类来表示。不同类型的异常对应不同的子类异常。
异常主要有两个来源,一个是java运行时的环境自动抛出系统生成的异常,
而不管程序员是否愿意捕获和处理。
还有一种是程序员自己定义的,也可以是java语音自己定义的异常,用throw
关键字来抛出,这种异常主要是来向调用者报告某些异常的信息。
java语言中不同的异常有不同的分类,每个异常都对应一个异常对象,
任何异常对象都是java.lang.Throwable类或者子类的对象,即所有异常类型都是
内置类Throwable类的子类。
在Throwable类中,通常把异常分为两个不同的分类,Exception和 Error
Throwable是所有异常和错误的超类,分别有一个错误Error和一个异常Exception子类
而其中的异常子类有分为运行时异常RuntimeException和非运行时异常,Exception是
所有异常的父类,定义了各种各样的可能出现异常的异常事件,一般要用户显示的声明和捕获
一;运行时异常
运行时异常是Runtime类以及其子类的异常,这些异常是不检查异常,在程序中可以选择捕获和处理
也可以不捕获和处理,显示的声明和捕获会对程序的可读性和运行效率影响很大,因此这些异常由系统
自动检测并交给默认的异常进行处理,这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这些异常的发生
二:非运行时异常
它是RuntimeException意外的异常,从类型上将属于Exception类及其子类,从程序语法上将必须是进行处理的异常,如果不处理
程序就不会编译通过。、
代码如下
class Demo{
public static void main(String[] args) {
try
{
FeiQ.feiq("192.168.10.122");
FeiQ.feiq(null);
}
catch (NoNetworkException noNet)
{
System.out.println(noNet.toString());
System.out.println(noNet.extraMessage);
System.out.println("SB, 请把网线插上!");
}
System.out.println("Hello World!");
}
}
class NoNetworkException extends Exception
{
//提供这个异常的一些额外的信息
String extraMessage;
//提供对应的构造方法
public NoNetworkException(String message, String extra){
super(message);
extraMessage = extra;
}
public NoNetworkException(){
}
}
class FeiQ
{
public static void feiq(String ip) throws NoNetworkException{
if (ip == null)
{
//抛出 网络问题的异常
throw new NoNetworkException("没有网络", "额外信息:没插网线!");
}
System.out.println("恭喜登录成功!");
}
}