We always face issues with casting. When we write casting we expect, it to be in required data type. However, often we see there error with CAST when the correct data is not provided. This might cause entire process to fail.
This issue can be avoided in SQL Server 2012 with TRY_CAST.