Error: cannot return non-void from void function

Graham Fawcett via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Nov 27 05:48:53 PST 2014


On Thursday, 27 November 2014 at 13:07:59 UTC, Suliman wrote:
> Full function look like this:
>
> auto parseConfig()
> {
> 	auto config = Ini.Parse(getcwd ~ "\\" ~ "config.ini");
> 	string txtlinks = getcwd ~ "\\" ~ config.getKey("input_links");
> 	if(!exists(txtlinks))
> 	{
> 		writeln("Can't find input file with list of links.");
> 		return;
> 	}
> 	auto lines = File(txtlinks, "r").byLine;
> 	return lines;
>
> }

You have two return statements in your function. Each of them 
returns a result of a different type (the first one returns a 
"void" result). That's not allowed.

Instead of writing "Can't find input file" and then returning, 
consider throwing an exception. Then you only have one return 
statement, and one return type.

Graham


More information about the Digitalmars-d-learn mailing list