C Mein Error Handling
C mein try, catch, ya throw kuch nahi hai — koi exception mechanism bilkul nahi hai. Standard convention iski jagah ye hai ke ek function ek status code return kare (commonly success ke liye 0, ek khaas tarah ki failure ke liye nonzero), aur jab waqai koi value produce karni ho, to use directly return karne ki jagah ek output pointer parameter ke through likhe.
#include <stdio.h>
int safeDivide(int a, int b, int *result) {
if (b == 0) {
return -1;
}
*result = a / b;
return 0;
}
int main() {
int result;
if (safeDivide(10, 0, &result) == 0) {
printf("%d\n", result);
} else {
printf("Error: division by zero\n");
}
return 0;
}Error: division by zero
Yahi hai C ki foundation: koi garbage collector nahi, koi classes nahi, koi exceptions nahi — bas functions, structs, pointers, aur manual memory management, compiler aap ki taraf se bahut kam check karta hai is site ki kisi bhi doosri language se. Baqi courses yahan jo bhi higher-level abstraction dete hain — garbage collection, RAII, borrow checking, exceptions — wo khaaskar isliye exist karte hain ke jo aap ne abhi haath se kiya hai uska ek hissa automate kar saken. Yahan se, best next step practice hai: ek chhota program choose karein, aur har malloc par dhyan se ghaur karein jo likhte hain, kyunke C mein, free hamesha aap ka hi kaam hota hai.
Practice exercise
safeDivide(int a, int b, int *result) likhein jo -1 wapas kare aur *result ko chhoo na pare agar b 0 ho, warna a / b ko *result mein store kare aur 0 wapas kare. Use (10, 0, &result) ke sath call karein aur "Error: division by zero" print karein agar ye fail ho.