Is there any difference between & and + operators while concatenating string? if yes, then what is difference? And if No, then why below code generating exception?
& is only used for string concatenation. + is overloaded to do both string concatenation and arithmetic addition.The double purpose of + leads to confusion, exactly like that in your question. Especially when Option Strict is Off, because the compiler will add implicit casts on your strings and integers to try to make sense of your code.
My recommendations
Option Strict On, then the compiler will force you to add explicit casts where it thinks they are necessary. + for concatenation because of the ambiguity with arithmetic addition. Both these recommendations are also in the Microsoft Press book Practical Guidelines And Best Practises for VB and C# (sections 1.16, 21.2)
You can write '&' to add string and integer :
processDetails=objProcess.ProcessId & ":" & objProcess.name
message = msgbox(processDetails,16,"Details")
output will be:
5577:wscript.exe