Visual Studio 2013 was released a few days ago and with it, updated Express editions for hobbyists and those who don’t require the full spectrum of features the commercial product provides. Unfortunately, VS Express 2013 for Windows Desktop shares a problem with its 2012 predecessor — the removal of the Exception Assistant.
You may remember this issue as something I covered earlier in the year. Despite all the improvements and added functionality, the lack of the Exception Assistant, which allows you to easily continue or make changes to code after an exception occurs, weighed heavily on my productivity, so much so I went back to 2010.
Yesterday I downloaded Visual Studio Express 2013 for Windows Desktop and hit the same issue. There is a workaround, but it’ll kill your productivity even more than doing without the Assistant: placing a try/catch
block around code you think might cause an exception, and then place a breakpoint on the catch
line.
If only we could always predict what code will throw an exception.
It’s an odd move on Microsoft’s part to persist with this, as it’s not enough to get you to buy Visual Studio, but annoying enough to keep you from using the latest Express editions. I’m not entirely sure who wins in this scenario.
If you do plan to persist with Express and you’re running Windows 7, be sure to grab VS Express 2013 for Windows Desktop and not VS Express 2013 for Windows — the latter only runs on Windows 8.1.
I’ve Given Up On Visual Studio Express 2012. Here’s Why [Lifehacker Australia]
Comments
5 responses to “Microsoft, Why Don’t You Want Us To Use Visual Studio Express 2013?”
Oh no, you mean it won’t let you operate as a hack and slash programmer? You have to have standards, and handle exceptions?
Good luck with the serious programming work bud :3
Agreed, the exception assistant can sometimes be useful, but this is not an issue that should be stopping most people from updating.
Just how many exceptions are actually being thrown for this to “weigh heavily on [your] productivity”?
Sorry Logan, but I’m with these guys. The line that gave it away for me was “If only we could always predict what code will throw an exception.” Y’know, that shouldn’t actually be all that difficult. The language specification is pretty clear about the possible exceptions that any method could throw. Always program defensively.
Hrm. Your response indicates you have either never worked in a codebase that wasn’t largely yours.
In a perfect world, every function would be perfectly documented, and every expectation on each interface would be pre-specified and clear… and programmers would never do silly things like pass null references into require parameters.
In reality, this is never the case. Hence, interactive debugging and tools that make it easy to see the program state in real-time can greatly aid development.
As I challenged the parent… just because you should rarely have to use it, it doesn’t mean the exception assistant isn’t good. I rarely need syntax highlighting to let me know if I’ve missed a bracket… but, on that rare occasion when I do, my life is easier because of this feature.
Hoooboy, I really hope you don’t fall off that high-horse… I fear it might be fatal :P.
All this wizard thing does is make debugging applications thrown within a random area more inconvenient to debug. Proper standards and handling of exceptions are great ways to stop your production program from crashing, and whilst good practice, are almost entirely unrelated to the documented gripe here.
“Serious” programmers choose the correct level of robustness for the job, and this varies based on the end user for the tool being designed, how critical stability is etc. While I can agree with you that there is a such thing as good programming practices… I’m confused as to why you would then argue that reducing the ease of debugging and usability of the tool is somehow a good thing?
It’s almost as though they are a business, and they want you to purchase the full version or something…..
Crazy!
/le shrug
Put in an if-debug preprocessor flag, with a system.diagnostics.debugger.breakpont() stop.
Used this to debug various issues (DirectX and XNA/Monogame, and SharePoint SDK objects. Those nasty SP exceptions like to timeout before you can look up their values).
If they want us to pay for it, the should break it up into smaller units and make it affordable.
Why should I be FORCED to pay for programming languages that I will never use? Why should I be FORCED to fund their development?
Microsoft are a Communist outfit.
Wow, real 50s thinking there buddy! Communist outfit? One of the biggest most profitable corporations in the world, ever, and its communistic? Get a grip!
Haha, communist. It is precisely their capitalist ideals that motivates them to charge you for stuff you don’t need. They are a private corporation that controls the production and supply of this particular set of tools. They set the price that they want. There is enough demand that they can get their price and many people agree to it, so they buy it. You, as a member of this capitalistic culture are free not to buy it. I am amazed at how many people just don’t understand what communism or socialism is, it’s just some catch-all evil ghost concept to them lol.
I think people commenting didn’t understand the post. The guy is writing about a feature (Exception Assistant) that existed in VS 2010 express, but was withdrawn in 2012 express and still absent from 2013 express.
The exception assistant shows exceptions whilst pointing at the culprit line of code. (Instead of a box just saying there was an exception!) Without this I agreed, whilst developing, its a drain on productivity.
He included a link (http://www.lifehacker.com.au/2013/01/ive-given-up-on-visual-studio-express-2012-for-windows-desktop-heres-why/) from a previous post.
His mention of a ‘workaround’ might be hindering understanding though. If I understant what he means correctly, he’s saying adding try-catch-blocks everywhere to help homing in on the issue and in effect do the job of the Exception assistance (albeit crude, even if works for that purpose).
Its useful to remember that this ‘workaround’ is for during development not for production!
HTH
I wonder if anyone noticed the little checkbox on the popup that says: “Break when this exception type thrown”. Hmmm…. I wonder what that box does? I also wonder what the link underneath that checkbox does?