=== File* fp = fopen("lalala.txt", "r"); if (fp == NULL){ //...error handling } else{ } === FILE* myfopen(char* filename, char* mode, int* return_code){ } === #include int main () { FILE * pFile; pFile=fopen("myfile.txt","r"); if (pFile==NULL) perror ("Error opening file"); else { fputc ('x',pFile); if (ferror (pFile)) printf ("Error Writing to myfile.txt\n"); fclose (pFile); } return 0; } === * try ... catch ... * forced: none-Error, none-RunTimeException * method declaration "throws ...." * throw statement: throw new BlahblahException(); * go through stack traversal until someone handles it === QUESTION: why finally? what's the difference of finally when exception didn't happen?