当[super init]
返回nil
时,不会抛出异常的原因是在于Objective-C的初始化方法遵循特定的规则。在Objective-C中,初始化方法遵循以下规则:
init
开头。nil
。在这个问题中,[super init]
是在子类的初始化方法中调用父类的初始化方法。如果父类的初始化方法返回nil
,则表示父类的初始化失败,此时子类的初始化方法应该立即返回nil
,而不是抛出异常。这是因为在Objective-C中,初始化方法的调用者应该检查返回值,而不是捕获异常。如果初始化失败,调用者应该处理返回值为nil
的情况,而不是假设对象已经成功初始化。
总之,[super init]
返回nil
时,不会抛出异常是因为Objective-C的初始化方法规则要求初始化方法的调用者检查返回值,而不是捕获异常。
领取专属 10元无门槛券
手把手带您无忧上云