C或Java中的异常处理机制的简单原理和应用?
JAVA
一、Execption可以分为java标准定义的异常和程序员自定义异常2种
(1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这里语法规则指的是JAVA类库内置的语义检查。
例如 int i = 2 / 0 或者 String str = null;str.length();
(2)另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。
例如 Exception ex = new Exception("这是我自定义的异常信息");throw ex;
所有的异常都是Thowable的子类。
异常处理是与程序执行是并行的。
代码示例:
Try{
//可能发现异常的语句块
}catch(异常类型,e){
//发生异常时候的执行语句块
} finnally{
//不管是否发生异常都执行的语句块
}
二、异常的处理方式
包括捕获异常和上抛异常
1、捕获异常
以捕获 int i=2/0 为例
try {
int i = 2 / 0;
} catch (Exception ex) {// 所有异常的父类Exception
ex.printStackTrace();
// 处理异常
System.out.println("异常信息:" + ex.getMessage());
}
finally {
System.out.println("释放资源,后续代码,一定要执行的代码");
Java中的异常的捕获和抛出是什么意思?有什么区别?
抛出异常是方法本身不进行处理这个异常需要调用方法的时候进行处理,捕获异常是在方法本身自己将异常进行处理。
1、抛出异常是方法中声明该方法可能出现的异常状态,利用throws关键字,捕获异常是在已知方法中会产生,或不完全确定,但是可能会产生异常的情况下,对能产生异常的代码部分进行的try catch处理。
2、假设方法A 声明的时候有声明抛出异常 void A() throws IOException那么在方法B中如果要调用A 只有2中策略可以B不处理,继续抛出,交给下一个环节处理。B捕获他,并处理
3、voidB()
{
try
{
A();//
}catch(IOExceptione)
{
//这里进行异常的处理,如果不想处理,不写任何代码也可以,但是不推荐。
java空指针怎么处理? ?
1使用鼠标点击打开eclipse软件。
2点击菜单栏File-->new--->java Project。
3输入java项目名,然后点击finish按钮。
4鼠标选中新建的项目继续新建一个Class类,鼠标右击--new---Class类。
5输入类名,点击finish按钮。
6在新建的类中键入如下代码:
public class HelloWorld {
public static void main(String[] args) {
String str1 = null;
if(str1.equals("Test")) {
System.out.println("空指针异常的代码");
}
}
}
点击运行按钮Run--Run as-->Java Applicatiion,可以看到运行结果空指针异常。
7继续修改该类中的代码为:
public class HelloWorld {
public static void main(String[] args) {
String str1 = null;
try {
/* 这是出现空指针异常代码 */
if(str1.equals("Test")) {
System.out.println("空指针异常的代码");
}
}catch(Exception e) {
System.out.println("出现空指针异常");

