zoukankan      html  css  js  c++  java
  • Objective-C:异常的处理

     1 //
     2 //  main.m
     3 //  03-动态绑定
     4 //
     5 //  Created by mac on 15/8/11.
     6 //  Copyright (c) 2015年. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 #import "Fraction.h"
    11 #import "Complex.h"
    12 #import "MyException.h"
    13 int main(int argc, const char * argv[])
    14 {
    15     @autoreleasepool
    16     {
    17         //测试分数类
    18         Fraction *f1 = [[Fraction alloc]initWithNumerator:1
    19                                            addDenominator:2];
    20         [f1 print];
    21         
    22         Fraction *f2 = [[Fraction alloc]initWithNumerator:2
    23                                            addDenominator:3];
    24         [f2 print];
    25         
    26         Fraction *f3 = [f1 add:f2];
    27         [f3 print];
    28         
    29         //测试复数类
    30         Complex *c1 = [[Complex alloc]initWithReal:5.0 andImag:3.0];
    31         [c1 print];
    32         
    33         Complex *c2 = [[Complex alloc]initWithReal:4.3 andImag:2.5];
    34         [c2 print];
    35         
    36         Complex *c3 = [c1 add: c2];
    37         [c3 print];
    38         
    39         
    40         //测试动态绑定
    41         id pObj = nil;
    42         pObj = f3;
    43         [f3 print];
    44         
    45         pObj = c3;
    46         [c3 print];
    47         
    48         MyException *pe;
    49         @try//将容易出现异常的代码放在try代码块里面
    50         {
    51           id arr[3] = {c1,f1,@""};
    52           for(int i=0;i<3;i++)
    53           {
    54               [arr[i] print];
    55               pe = [[MyException alloc] initWithName:@"MyException" reason:@"test" userInfo:nil];
    56               @throw pe;//主动抛出自定义的异常
    57           }
    58             NSLog(@"try last statement");//在出现异常后会跳过@try中后续的代码,不会执行。
    59         }
    60         @catch(MyException *e)//捕捉自定义的异常
    61         {
    62             NSLog(@"MyException:%@",[e reason]);
    63         }
    64         @catch(NSException *e)//系统捕捉异常
    65         {
    66             NSLog(@"%@",[e reason]);
    67         }
    68         @finally//最终处理
    69         {
    70             NSLog(@"finally");
    71         }
    72         //异常处理完,后续代码会继续执行
    73         NSLog(@"last statement!");
    74     }
    75     return 0;
    76 }
  • 相关阅读:
    JMeter学习(二十三)关联
    最常用的DOS命令
    不同类型的操作系统
    分级存储管理的四大优点
    软件工程中数据库设计
    PPP(点对点协议(Point to Point Protocol)
    关键路径法
    什么是鲁棒性测试
    何为蠕虫病毒
    临界区
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4721504.html
Copyright © 2011-2022 走看看