title: checked and unchecked exception in .NET
body: <p>a strange idea comes to me when I'm reading APUE(Advanced Programming in UNIX Environment).</p>
  
  <p>It seems that in UNIX's error handling, there are two types of errors (FATAL &amp; INFATAL). I feel like it's something related to checked and unchecked Exceptions in JAVA.</p>
  
  <p>So, to sum up, in a program, you have two kinds of errors, one of them is critical and will make system crash and you can do nothing about it. Another one is more like a signal that you can catch and do something to fix it. </p>
  
  <p>I heard that in C# there is no checked and unchecked exception, so does C# not have a concept of critical and uncritical errors? Just got very curious because i think this concept is very fundamental.</p>
  
  <p>Update: What is the exception design in other languages? Can anyone talk about this?</p>