|
This could have resulted from a quick conversion of Assert() statements. The assert is a positive statement that explodes if not true. To covert them to execute a non-lethal action the quickest and perhaps safest approach is to just change to an if() throwing a NOT in front of the expreseion. New error handling code follows.
...not advocating this, just offering an explanation.
|
|
|
|
|
|
I asked a developer for code to create a specific XML document to save time.
Here is what he sent.
Needless to say, it didn't save me any time.
Dim XMLFile As StreamWriter = New StreamWriter(strAssetFile, False)
XMLFile.WriteLine("<Assets>")
XMLFile.WriteLine("<Encoding>")
XMLFile.WriteLine("<Profile Specifier=" + """" + "Standard1" + """" + ">")
XMLFile.WriteLine("</Profile>")
XMLFile.WriteLine("</Encoding>")
XMLFile.WriteLine("<Asset FilePath=" + """" + strUpDestinationFile + """" _
+ " AssetID=" + """" + Movieid.ToString + """" _
+ " CustomerID=" + """" + "1129" + """" _
+ " AssetName=" + """" + strFileName.Substring(0, strFileName.LastIndexOf(".")).Replace("_", " ") + """" _
+ " AssetDescription=" + """" + "Upolad" + """" _
+ " Category=" + """" + """" _
+ " FileNameToUse=" + """" + strFileName.Substring(0, strFileName.LastIndexOf(".")) + """" _
+ " Bytes=" + """" + (0).ToString + """" _
+ " Activate=" + """" + (1).ToString + """" _
+ " />")
XMLFile.WriteLine("</Assets>")
XMLFile.Close()
CreateAssetXML = strAssetFile
|
|
|
|
|
While I generally can't stand Visual Basic for much, it does certainly have some neat features for working with XML. You should send your developer a link to this article on MSDN[^].
Adam Maras | Software Developer
Microsoft Certified Professional Developer
|
|
|
|
|
Well, there are many horrors in that code.
The longest line can be shortened 50% by using String.Format()
Besides this, there is a high risk to produce a bad-formed XML if you have quotes, less-than or greater-than symbols inside your strings.
XmlTextWriter is the proper class to do xml serialization.
Best regards,
Jaime.
|
|
|
|
|
What feedback did you provide the developer...?
|
|
|
|
|
Try<br />
Dim d As Double = Math.Sqrt(number)<br />
Catch ex As Exception<br />
'do stuff<br />
End Try
|
|
|
|
|
Shenanigans! Nobody is that dumb.
Please... no.
|
|
|
|
|
It's almost like this one I saw a long time ago:
if (abs(num)!=num) ...
(this is a real one...)
|
|
|
|
|
jkruza wrote: (this is a real one...)
lol, i didnt make this up 
|
|
|
|
|
Yeah, I believe you.
But it's so stupid, it's really hard to believe it's real. 
|
|
|
|
|
true that 
|
|
|
|
|
jkruza wrote: (this is a real one
As opposed to an imaginary 1?
Visual Studio is an excellent GUIIDE.
|
|
|
|
|
Ah! I've been looking on how to do this for months!!!
Jeroen De Dauw
---
Forums ; Blog ; Wiki
---
70 72 6F 67 72 61 6D 6D 69 6E 67 20 34 20 6C 69 66 65!
|
|
|
|
|
In the original BASIC, the absolute value would be used, so no error.
|
|
|
|
|
I will never complain about our code base again.
OK - that was a lie, but I'm tempted.
CCC solved so far: 2 (including a Hard One!)
|
|
|
|
|
I don't think this code is doing what you think: it is not testing whether number is negative. No exception will be thrown because Math.Sqrt(n) returns NaN if n is negative. This is a valid Double value, and the code will drop out of the Try-Catch block without executing the line you have labelled 'do stuff. The only way this will get an exception is if the variable number is a String such as "XYZ". Math.Sqrt will cast a string such as "16" to a Double then take the square root of that, so as long as the String represents a numeric value it will work. Even "-16" will work because this will return NaN. But something such as "XYZ" will fail with an exception because this cannot be converted to a number and you will get an error.
Having said that, there are better ways to check whether a String is numeric.
|
|
|
|
|
You find this in the overlong validation routines...
function isNumeric(strString) {
var strValidChars = "0123456789";
var strChar;
var blnResult = true;
for (i = 0; i < strString.length && blnResult == true; i++) {
strChar = strString.charAt(i);
if (strValidChars.indexOf(strChar) == -1) {
blnResult = false;
}
}
return blnResult;
}
Developer, meet isNaN() , isNaN() meet developer.
|
|
|
|
|
Nice. Very useful with empty strings.
|
|
|
|
|
isNaD() would return true for sure.
Jeroen De Dauw
---
Forums ; Blog ; Wiki
---
70 72 6F 67 72 61 6D 6D 69 6E 67 20 34 20 6C 69 66 65!
|
|
|
|
|
But there's a functionality difference here, which might be deliberate. isNan handles decimal points and minus signs, the example function does not.
|
|
|
|
|
gkushner wrote: Developer, meet isNaN
Nope.
isNaN takes a float/double as an input, all it does is keep track of a mathematical mishap, such as taking the logarithm of a negative number.
It does not deal with a string that may or may not represent something that is considered a valid number (before you can apply isNaN, you have to try and parse the string to a number, and that is what the code is about)
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Well, actually JavaScript will try to cast a string provided to isNaN as a float.
So, if you write isNaN("10"), js will process the expression as isNaN(parseFloat("10")).
However isNaN(parseInt("10")) gets the job done.
|
|
|
|
|
|