|
Before people start... The horror is NOT that this is VB code... Now with that out of the way...
A bit of weird code a colleague found recently...
If code.Length < 5 Or code.Length = 6 Or code.Length = 7 Then
Throw New Exception("Code should be 5 characters long.")
End If My guess is that the programmer assumed it would be 5 characters long or less. Then it turned out it could be 6 too so the Or code.length = 6 part was added, then the code was 7 at some occurrence... The users weren't stupid enough to enter an 8 character code so that one hasn't been added (yet)
Why not simply check if code.Length <> 5 ?
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
At least the programmer added a comment stating what the code should do.
|
|
|
|
|
If only the code did what was commented... Perhaps requirements changed and the comment is wrong?
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
Maybe the comment and the error message should have been
' This code should always be 5 characters or more than 7 characters.
|
|
|
|
|
Then he should correct the exception too:
"Code should be 5 characters long OR longer than 7."
Giraffes are not real.
|
|
|
|
|
OMG ... I can't look at it. I'm feeling sick. Thank you for ruining my day!
|
|
|
|
|
or simply set the max lenght of the textbox = 5
|
|
|
|
|
In order to write secure code... whatever how important is your input, do Not trust the client, validate input data even @ back-end
think about client Validation just like good interface, to ease user life, to reduce hits on the server... no more
Last Egyptian Physicist
www.ameen.rr.nu
|
|
|
|
|
What? That's all you got!? I've seen this s**tstuff for years!
|
|
|
|
|
What's so bad about being explicit about what you don't accept as a valid value?
Besides that, we also have a lot of literal values here. Checking the length against a constant or some configuration entry can be helpful, especially because the code's valid length may have changed over time. Throwing a plain vanilla exception with a literal message also is sloppy. It's not that hard to derive custom exeption classes for your application and would help in avoiding Pokemon exception handling.
I'm invincible, I can't be vinced
|
|
|
|
|
My fix
If IsPrime(90*code.Length+61) Then
Throw New Exception("Code should be 5 or anything above 7 characters long.")
End If
modified 27-Jan-12 10:13am.
|
|
|
|
|
Are you a member of Obfuscators Anonymous.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Yeah, at the Novice rank. I hope to go up to Apprentice this year.
|
|
|
|
|
Hey, VB is great. It is much easier than C#. I do everything in C# but don't hate on VB.
|
|
|
|
|
Difference between VB or C# is a syntax, thanks to the .net framework. But if you ask what do I think is that C# is better. But ultimately it comes toward preference.
|
|
|
|
|
Just goes to show that some programmers haven't got a clue!
A perpetual holiday is a good working definition of hell.
|
|
|
|
|
"code.Length <> 5" is far too easy!
|
|
|
|
|
Indeed...
Dim counter As Long
For Each c As Char In code
counter = counter + 1
End If
If counter < 5 Then
Throw New Exception("The code is to short!")
ElseIf counter = 6
Throw New Exception("The code is to long!")
ElseIf counter = 7
Throw New Exception("The code is to long!")
Else
End If
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
Much better! LOL
bwa
P.S.: Does the happy face get output??
|
|
|
|
|
The happy face is a hidden VB feature in .NET 4
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
Surely "The code is tOO short"
It's an OO world, remember.
|
|
|
|
|
Indeed, not enough Objects...
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
These instances of code changes were not done by a programmer. A developer maybe, but not a programmer.
|
|
|
|
|
Perhaps we could debate a bit on the difference between programmer and developer?
Anyway, whoever made those changes had no clue what they were doing so it seems
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
I certainly agree that the coder was inept.
On the subject of developer vs programmer. Even though my title is,"Sr Developer Architect" I consider myself a programmer. I'm as comfortable using VI and make as I am Eclipse or Visual Studio. Therein lies the difference to me. I feel the word developer connotes one who requires the modern IDE with all it's pop-up hints, which 95% of the time just get in my way.
Then there is VI where one never has to take their hands of the keyboard to do virtually everything possible when it comes to the programming process.
I live in both worlds in my efforts.
Now all of that is entirely subjective observation so it's really not debatable. But I would be interested in your thoughts.
I'm going to destroy the Earth with my Illudium Q-36 Explosive Space Modulator! - Marvin Martian
|
|
|
|