Im having following error,
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.

Currently my main sp calling list of sp(s) that further calls next sp(s)
My sp(s) are covered with begin try/catch blocks.

when calling from dot net application, the above mentioned error receives that leads me nowhere for the rectification of the error.

But when i try to run the same main sp it gives me the exact error as i have made a central sp for the error loggin.

Here is the example of my main sp

Create PROCEDURE [dbo].[Main]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
[dbo].[abc1]

IF @@ROWCOUNT >= 0
BEGIN
Exec [dbo].[abc2]
IF @@ROWCOUNT >= 0
BEGIN
Exec [dbo].[abc3]
IF @@ROWCOUNT >= 0
BEGIN
Exec [dbo].[xy]

END
END
END
Exec [dbo].[Sp_abc]


END TRY
BEGIN CATCH
EXEC [dbo].[CatchError]
END CATCH
END