Objective-C:除数为0的情况下异常的处理(检测、抛出、捕捉、处理)
// DivTest.h
// 异常的处理
//
// Created by ma c on 15/8/11.
// Copyright (c) 2015年. All rights reserved.
// #import <Foundation/Foundation.h> @interface DivTest : NSObject
@property(nonatomic,assign)CGFloat x;
@property(nonatomic,assign)CGFloat y;
@property(nonatomic,assign)CGFloat div;
-(id)initWithX:(CGFloat) m andY:(CGFloat) n;
-(void)print;
@end
// 上面为类的声明部分
//类的实现部分
// DivTest.m
// 异常的处理
//
// Created by ma c on 15/8/11.
// Copyright (c) 2015年. All rights reserved.
// #import "DivTest.h"
#import "MyException.h"
@implementation DivTest
-(id)initWithX:(CGFloat) m andY:(CGFloat) n
{
MyException *me;
self = [super init];
if(self!=nil)
{
_x = m;
_y = n;
if(_y==)
{//如果_y=0,说明除数为零了,抛出异常给调用者去处理
@throw me = [[MyException alloc]initWithName:@"MyException:" reason:@"除数为零了" userInfo:nil];
}
}
return self;
}
-(void)print
{
NSLog(@"div:%.2f",_x/_y);
}
@end
//异常的声明和定义部分
// MyException.h
// 异常的处理
//
// Created by ma c on 15/8/11.
// Copyright (c) 2015年. All rights reserved.
// #import <Foundation/Foundation.h> @interface MyException : NSException @end // MyException.m
// 异常的处理
//
// Created by ma c on 15/8/11.
// Copyright (c) 2015年 bjsxt. All rights reserved.
// #import "MyException.h" @implementation MyException @end
//主函数中对异常的测试和处理
// main.m
// 异常的处理
//
// Created by ma c on 15/8/11.
// Copyright (c) 2015年. All rights reserved.
// #import <Foundation/Foundation.h>
#import "DivTest.h"
#import "MyException.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{
DivTest *dt;
@try
{ //检测除数为0的异常
dt = [[DivTest alloc]initWithX: andY:];
}
@catch(MyException *e)
{ //捕捉除数为零的异常
NSLog(@"MyException:%@",[e reason]);
}
@catch(NSException *e)
{ //捕捉其他的异常
NSLog(@"Exception:%@",[e reason]);
}
@finally
{ //一定要执行的代码块
[dt print];
}
}
return ;
}
Objective-C:除数为0的情况下异常的处理(检测、抛出、捕捉、处理)的更多相关文章
- Java中除数为0的情况
转自http://blog.csdn.net/alanzyy/article/details/8591534 在数学中,规定被除数不能为0 那么在Java程序中一旦出现除数为0时,会出现什么情况呢: ...
- oracle 中可以用 case when then else end来处理除数是0的情况
case when a.ZJXJE != 0 then to_char(round((a.YFZK-b.YFZK)/a.ZJXJE,2)) else '本期总进项金额为零' end then和else ...
- android EditText 默认情况下不获取焦点(不弹出输入框)
可以在EditText前面放置一个看不到的LinearLayout,让它率先获取焦点: <LinearLayout android:focusable="true" andr ...
- Spring @Transactional注解在什么情况下会失效,为什么?
出处: https://www.cnblogs.com/hunrry/p/9183209.html https://www.cnblogs.com/protected/p/6652188.htm ...
- @transactional注解在什么情况下会失效,为什么?
一,特性: 1,一般在service里加@Transactional注解,不建议在接口上添加,加了此注解后此类会纳入spring事务管理中,每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理 ...
- weblogic 下异常 org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
项目之前在 Tomcat 环境下一直都正常运行,今天应客户要求需要迁移到 webLogic 10.3.6 下, 部署后竟然抛出了 org.hibernate.QueryException: Class ...
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- 【转】Sqlite 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该...
开发环境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)今天在做Sqlite数据库测试,一运行程序在一处方法调用时报出了一个异常 混合 ...
- Mysql在高并发情况下,防止库存超卖而小于0的解决方案
背景: 本人上次做申领campaign的PHP后台时,因为项目上线后某些时段同时申领的人过多,导致一些专柜的存货为负数(<0),还好并发量不是特别大,只存在于小部分专柜而且一般都是-1的状况,没 ...
随机推荐
- PHP 统计数据合并
将不同的统计结果整合在一起,如图,根据年级统计出不同成绩段人数(此处只为举例),然后写了一个方法来处理这些统计数组 <?php /** * 合并统计数据 * @param $key_column ...
- Kylin启动时错误:Failed to find metadata store by url: kylin_metadata@hbase 解决办法
一.问题背景 安装kylin后使用命令 $ kylin.sh start 后出现Failed to find metadata store by url: kylin_metadata@hbase的错 ...
- 构建第一个Spring Boot项目
1.启动IntelliJ IDEA,点击"Create New Project"  2.选择"Spring initializr",设定SDK及Spring ...
- source Insight 软件使用注意点
1. 需要将 tab键转为 4个空格 首先通过路径(Options->Document Options)进入以下界面: step 1:将 Visible tabs 打勾. step 2 :将 E ...
- Category 特性在 iOS 组件化中的应用与管控
背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性. Category 就是对装饰模式的一种具体实现.它的主要作用是在不改变原有类的前提下, ...
- Win10 重装后,必须修改的设置
作为一个程序猿,系统易用性是相当重要,每次重装WIN10 都会遇到一头包的问题,比如不能远程,打开文件各种提示需要管理员权限(mlgb很想骂人,我明明是管理员权限) ,然后开了管理员权限,结果又不能用 ...
- [Luogu5162]WD与积木(多项式求逆)
不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的. 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转 ...
- 【BZOJ】2561: 最小生成树【网络流】【最小割】
2561: 最小生成树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2685 Solved: 1253[Submit][Status][Discu ...
- 原型设计工具 Axure
ahjesus Axure RP 7.0注册码 ahjesus Axure RP 7.0注册码 用户名:axureuser 序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9I ...
- Vue集成腾讯地图和几何库
关于Vue中如何引入腾讯地图,百度搜索中的结果已经非常明确: /** * 腾讯地图. * @param key * @returns {Promise<any>} * @construct ...