Don't catch exceptions by value
(cherry picked from commit 893be6f5e36abb58bbaa9c49055a5218114dd514) (cherry picked from commit bd79c1f6f6391786772a8a79962abe22f374cca4)
This commit is contained in:
		
							parent
							
								
									9f53bc33e7
								
							
						
					
					
						commit
						f3ce4453a6
					
				
					 5 changed files with 7 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -111,9 +111,9 @@ static void parseJSON(EvalState & state, const char * & s, Value & v)
 | 
			
		|||
                mkFloat(v, stod(tmp_number));
 | 
			
		||||
            else
 | 
			
		||||
                mkInt(v, stol(tmp_number));
 | 
			
		||||
        } catch (std::invalid_argument e) {
 | 
			
		||||
        } catch (std::invalid_argument & e) {
 | 
			
		||||
            throw JSONParseError("invalid JSON number");
 | 
			
		||||
        } catch (std::out_of_range e) {
 | 
			
		||||
        } catch (std::out_of_range & e) {
 | 
			
		||||
            throw JSONParseError("out-of-range JSON number");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
 | 
			
		|||
 | 
			
		||||
        try {
 | 
			
		||||
            runProgram("git", true, { "-C", uri, "diff-index", "--quiet", "HEAD", "--" });
 | 
			
		||||
        } catch (ExecError e) {
 | 
			
		||||
        } catch (ExecError & e) {
 | 
			
		||||
            if (!WIFEXITED(e.status) || WEXITSTATUS(e.status) != 1) throw;
 | 
			
		||||
            clean = false;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -879,8 +879,8 @@ void LocalStore::querySubstitutablePathInfos(const PathSet & paths,
 | 
			
		|||
                    info->references,
 | 
			
		||||
                    narInfo ? narInfo->fileSize : 0,
 | 
			
		||||
                    info->narSize};
 | 
			
		||||
            } catch (InvalidPath) {
 | 
			
		||||
            } catch (SubstituterDisabled) {
 | 
			
		||||
            } catch (InvalidPath &) {
 | 
			
		||||
            } catch (SubstituterDisabled &) {
 | 
			
		||||
            } catch (Error & e) {
 | 
			
		||||
                if (settings.tryFallback)
 | 
			
		||||
                    printError(e.what());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -280,7 +280,7 @@ static void _main(int argc, char * * argv)
 | 
			
		|||
                auto absolute = i;
 | 
			
		||||
                try {
 | 
			
		||||
                    absolute = canonPath(absPath(i), true);
 | 
			
		||||
                } catch (Error e) {};
 | 
			
		||||
                } catch (Error & e) {};
 | 
			
		||||
                if (store->isStorePath(absolute) && std::regex_match(absolute, std::regex(".*\\.drv(!.*)?")))
 | 
			
		||||
                drvs.push_back(DrvInfo(*state, store, absolute));
 | 
			
		||||
            else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ struct CmdEdit : InstallableCommand
 | 
			
		|||
        int lineno;
 | 
			
		||||
        try {
 | 
			
		||||
            lineno = std::stoi(std::string(pos, colon + 1));
 | 
			
		||||
        } catch (std::invalid_argument e) {
 | 
			
		||||
        } catch (std::invalid_argument & e) {
 | 
			
		||||
            throw Error("cannot parse line number '%s'", pos);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue