Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialDominik Huber
4,631 PointsMy variable gets set to null somehow - can you please help me?
I tried and tried but I can't get it to work and I don't know why. The Error message I got is this: " Bummer! System.ArgumentNullException: Value cannot be null. Parameter name: String. See output for stack trace."
So anyhow the count = int.Parse(Console.ReadLine());
(the one in the if block) gets null assigned, am I right? Why?
The closest I can get to is that code: (Output from Stacktrace at the bottom) /edit: Funny thing. The exact same code in Visual Studio works as intended. Tested it with a positive number, a negative number and zero. All 3 worked just as intended. What am I missing?
using System;
namespace Treehouse.CodeChallenges
{
class Program
{
static void Main()
{
Console.Write("Enter the number of times to print \"Yay!\": ");
try
{
int loopcount = 0;
int count = int.Parse(Console.ReadLine());
while (true)
{
if (count < 0)
{
Console.WriteLine("You must enter a positive number.");
count = int.Parse(Console.ReadLine());
continue;
}
if (loopcount < count){
Console.WriteLine("Yay!");
loopcount += 1;
} else {
break;
}
}
}
catch (FormatException)
{
Console.WriteLine("You must enter a whole number.");
}
}
}
}
System.ArgumentNullException: Value cannot be null.
Parameter name: String
at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x00054] in /builddir/build/BUILD/mono-4.8.1/mcs/class/referencesource/mscorlib/system/number.cs:1074
at System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) [0x00014] in /builddir/build/BUILD/mono-4.8.1/mcs/class/referencesource/mscorlib/system/number.cs:745
at System.Int32.Parse (System.String s) [0x00000] in /builddir/build/BUILD/mono-4.8.1/mcs/class/referencesource/mscorlib/system/int32.cs:120
at Treehouse.CodeChallenges.Program.Main () [0x0002d] in <7443b08c0fed4b718a9bdc724518d483>:0
at MonoTester.Run () [0x002b3] in MonoTester.cs:169
at MonoTester.Main (System.String[] args) [0x00013] in MonoTester.cs:28
1 Answer
Henrik Christensen
Python Web Development Techdegree Student 38,322 PointsGot a couple of questions:
- what line is line 28? (in MonoTester.cs:28)
- what value did you enter when you got this exception?
Dominik Huber
4,631 PointsDominik Huber
4,631 PointsHi I could solve this issue with a int.TryParse() method. Because the problem was if the user enters nothing - so he just clicks enter when the Console.ReadLine() pops up. I handled that with TryParse().
Thank you anyway for your help :)
Henrik Christensen
Python Web Development Techdegree Student 38,322 PointsHenrik Christensen
Python Web Development Techdegree Student 38,322 PointsYeah that was my thought, that the user might hit enter without entering anything => then it would throw that exception - but good you fixed it yourself :-)
Happy coding! :-D