Why it is bed to throw our own exceptions in try catch bock

If we know the point where an error has occurred, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions signifies some design flaws in the project.