আমি কিছু পয়েন্টের সময় কল ট্রেস লগ করতে চাই, যেমন ব্যর্থ উক্তি, বা ব্যতীত ব্যতিক্রম।
আমি কিছু পয়েন্টের সময় কল ট্রেস লগ করতে চাই, যেমন ব্যর্থ উক্তি, বা ব্যতীত ব্যতিক্রম।
উত্তর:
n13 এর উত্তরটি বেশ কার্যকর হয়নি - আমি এটিকে সামনে আসতে সামান্য পরিবর্তন করেছি
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
int retval;
@try{
retval = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
@catch (NSException *exception)
{
NSLog(@"Gosh!!! %@", [exception callStackSymbols]);
@throw;
}
return retval;
}
}
NSLog(@"[Error] - %@ %@", exception.name, exception.reason);
যদি আসল ব্যতিক্রমও চান তবে আপনি যোগ করতে পারেন
কোকো ইতিমধ্যে কনসোলে ব্যতীত ব্যতিক্রম স্ট্যাক ট্রেস লগ ইন করে যদিও তারা কেবল কাঁচা মেমরি ঠিকানা। আপনি যদি কনসোলে প্রতীকী তথ্য চান তবে কিছু নমুনা কোড রয়েছে অ্যাপল থেকে ।
যদি আপনি আপনার কোডের একটি স্বেচ্ছাসেবী বিন্দুতে স্ট্যাক ট্রেস তৈরি করতে চান (এবং আপনি চিতাবাঘের উপরে আছেন), ব্যাকট্র্যাস ম্যান পৃষ্ঠাটি দেখুন। চিতাবাঘের আগে, আপনাকে কল স্ট্যাকের মাধ্যমেই খনন করতে হয়েছিল।
এটি আপনাকে অনেক কি করতে হবে তা বলে।
মূলত আপনাকে লগ করতে অ্যাপ্লিকেশন ব্যতিক্রম হ্যান্ডলিং সেট আপ করতে হবে, এরকম কিছু:
#import <ExceptionHandling/NSExceptionHandler.h>
[[NSExceptionHandler defaultExceptionHandler]
setExceptionHandlingMask: NSLogUncaughtExceptionMask |
NSLogUncaughtSystemExceptionMask |
NSLogUncaughtRuntimeErrorMask]
ব্যতিক্রমগুলির জন্য, আপনি এটি করতে ব্যতিক্রম ব্যবহারকারীর ইনফো অভিধানের সদস্য এনএসএসট্যাকট্রেসকি ব্যবহার করতে পারেন। অ্যাপলের ওয়েবসাইটে ব্যতিক্রমগুলির জন্য কোনও প্রোগ্রামের প্রতিক্রিয়া নিয়ন্ত্রণ করা দেখুন ।
backtrace
এবংbacktrace_symbols
ফাংশনগুলি ব্যবহার করুন ; ব্যাকট্রিজ (3) ম্যানপেজ দেখুন।