巴州区建设局网站,望野八年级,店铺推广软文500字,展馆设计都是找的什么公司原地址#xff1a;http://www.sudu.cn/info/html/edu/net/20071227/50446.html 一、c#xff03;的异常处理所用到关键字 try 用于检查发生的异常#xff0c;并帮助发送任何可能的异常。 catch 以控制权更大的方式处理错误#xff0c;可以有多个catch子句。 finally 无论是… 原地址http://www.sudu.cn/info/html/edu/net/20071227/50446.html 一、c的异常处理所用到关键字 try 用于检查发生的异常并帮助发送任何可能的异常。 catch 以控制权更大的方式处理错误可以有多个catch子句。 finally 无论是否引发了异常finally的代码块都将被执行。 throw 用于引发异常可引发预定义异常和自定义异常。 二、c异常处理的格式 try { 程序代码块 } catchexception e { 异常处理代码块 } finally { 无论是否发生异常均要执行的代码块 } 三、异常处理实战 一个除数和零的简单例子 public class divisoriszero { private static void main() { int dividend10; int divisor10; int divisor25; int dividevalue; try { dividevaluedividend/divisor1; //(1) //dividevaluedividend/divisor2; //(2) system.console.writeline(dividevalue{0},dividevalue);//3这一行将不会被执行。 } catch { system.console.writeline(传递过来的异常值为{0},e); } finally { system.console.writeline(无论是否发生异常我都会显示。); } } } 注(1)行被执行则会抛出一个异常如果没有catch语句程序会异常终止使用不带参数的catch子句则可以捕获任意类型的异常。 如果将1行注释掉启用2行这意味该程序运行时不会出现异常从输出可知finally代码块仍将被执行。 可以给try语句提供多个catch语句以捕获特定的异常如上例中0作为除数则会引发dividebyzeroexception类型的异常上例中的catch语句可以作如下修改 catch(dividebyzeroexception e) { system.console.writeline(零不能作为除数异常值为n{0},e); } catch(exception e) { system.console.writeline(并非零作为除数引发的异常!异常值为n{0},e); } 为什么还要加上一个catch(exception e)子句呢原因很简单catch(dividebyzeroexception e)子句只能捕获特定的异常try内的程序代码可能还会产生其它的异常这些异常只能由catch(exception e)来捕获了。 下表给出了一些常见的异常 system名称空间中常用的异常类 异常类名称 简单描述 memberaccessexception 访问错误类型成员不能被访问 argumentexception 参数错误方法的参数无效 argumentnullexception 参数为空给方法传递一个不可接受的空参数 arithmeticexception 数学计算错误由于数学运算导致的异常覆盖面广。 arraytypemismatchexception 数组类型不匹配 dividebyzeroexception 被零除 formatexception 参数的格式不正确 indexoutofrangeexception 索引超出范围小于0或比最后一个元素的索引还大 invalidcastexception 非法强制转换在显式转换失败时引发 multicastnotsupportedexception 不支持的组播组合两个非空委派失败时引发 notsupportedexception 调用的方法在类中没有实现 nullreferenceexception 引用空引用对象时引发 outofmemoryexception 无法为新语句分配内存时引发内存不足 overflowexception 溢出 stackoverflowexception 栈溢出 typeinitializationexception 错误的初始化类型静态构造函数有问题时引发 notfinitenumberexception 无限大的值数字不合法 四、定义自己的异常类 除了预定义的异常外我们还可以创建自己的异常过程比较简单 ㈠声明一个异常格式如下 class exceptionname:exception{} ㈡引发自己的异常 throw(exceptionname) 看一个例子 class iamsecondgrade:system.exception{}//声明异常 class secondgrade { public static int mul(int first,int second) { if(first100||second100) throw new iamsecondgrade();//引发异常 return (first*second); } public static void main() { int mul_value; try { mul_valuemul(ArrayArray,56); system.console.writeline(ArrayArray与56积为{0},mul_value); mul_valuemul(101,4); system.console.writeline(出现异常这行是不会被执行的。); } catch(iamsecondgrade)//捕获自定义的异常 { system.console.writeline(我才上二年级超过100的乘法我不会。嘿嘿我自定义的异常。); } catch(system.exception e) { system.console.writeline(非自定义异常。其值为{0},e); } } } 转载于:https://www.cnblogs.com/123ing/p/3789186.html